home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-02-03 | 55.5 KB | 1,519 lines |
- Newsgroups: comp.sources.x
- Path: uunet!stanford.edu!ames!pasteur!nntp
- From: scott.oaks@East.Sun.COM (Scott Oaks)
- Subject: v15i157: OpenLook Virtual Window Mgr (3.0), Part11/21
- Message-ID: <1992Feb4.135752.7587@pasteur.Berkeley.EDU>
- Sender: dcmartin@msi.com (David C. Martin - Moderator)
- Nntp-Posting-Host: postgres.berkeley.edu
- Organization: University of California, at Berkeley
- References: <csx-15i147-olvwm-3.0@uunet.UU.NET>
- Date: Tue, 4 Feb 1992 13:57:52 GMT
- Approved: dcmartin@msi.com
-
- Submitted-by: scott.oaks@East.Sun.COM (Scott Oaks)
- Posting-number: Volume 15, Issue 157
- Archive-name: olvwm-3.0/part11
-
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # The tool that generated this appeared in the comp.sources.unix newsgroup;
- # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
- # If this archive is complete, you will see the following message at the end:
- # "End of archive 11 (of 21)."
- # Contents: kbdfuncs.c mem.h winframe.c.Z.uu
- # Wrapped by dcmartin@fascet on Tue Jan 14 05:54:45 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'kbdfuncs.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kbdfuncs.c'\"
- else
- echo shar: Extracting \"'kbdfuncs.c'\" \(18793 characters\)
- sed "s/^X//" >'kbdfuncs.c' <<'END_OF_FILE'
- X/*
- X * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents
- X * pending in the U.S. and foreign countries. See LEGAL_NOTICE
- X * file for terms of the license.
- X */
- X
- X#ident "@(#)kbdfuncs.c 1.1 olvwm version 1/3/92"
- X
- X/*
- X * Based on
- X#ident "@(#)kbdfuncs.c 1.14 91/09/14 SMI"
- X *
- X */
- X
- X#include <stdio.h>
- X#ifdef SYSV
- X#include <string.h>
- X#else
- X#include <strings.h>
- X#endif
- X
- X#include <X11/Xlib.h>
- X#include <X11/Xutil.h>
- X
- X#include "i18n.h"
- X#include "ollocale.h"
- X#include "olwm.h"
- X#include "win.h"
- X#include "menu.h"
- X#include "globals.h"
- X#include "group.h"
- X#include "resources.h"
- X
- X/*
- X * Externals
- X */
- Xextern Client *CurrentClient;
- X
- Xextern void ClientActivate();
- Xextern Client *ClientGetLastCurrent();
- Xextern void ClientLowerTransients();
- Xextern Client *ClientRaiseTransients();
- Xextern void ClientSetCurrent();
- X
- X/* ===== private functions ================================================ */
- X
- X
- Xtypedef struct {
- X Bool prev;
- X Bool seencur;
- X Client *cur;
- X Client *next;
- X} FindClosure;
- X
- X
- X/*
- X * Given a keystroke event, find the window (and its client structure) that is
- X * under the >pointer<. If the pointer is on the same screen as the event
- X * window, then this is simply the subwindow field of the event. If the
- X * pointer is on another screen, we must do a TranslateCoordinates to find it.
- X * Returns True if a window with a client structure was found, otherwise
- X * returns False.
- X */
- Xstatic Bool
- XchildUnderPointer(dpy, ke, wid, info, cli)
- X Display *dpy;
- X XKeyEvent *ke;
- X Window *wid;
- X WinGeneric **info;
- X Client **cli;
- X{
- X int junk;
- X
- X if (ke->same_screen) {
- X *wid = ke->subwindow;
- X } else {
- X (void) XTranslateCoordinates(dpy, ke->root, ke->root,
- X ke->x_root, ke->y_root, &junk, &junk, wid);
- X }
- X if (*wid == None)
- X return False;
- X *info = WIGetInfo(*wid);
- X if (*info == NULL)
- X return False;
- X *cli = (*info)->core.client;
- X if (*cli == NULL)
- X return False;
- X return True;
- X}
- X
- X
- X/*
- X * Derive a value related to an angle without using trigonometry or floating
- X * point. Derived from Sedgewick, Algorithms, p. 315. Returns a value in the
- X * range [0..360), scaled by 2^16. Since Y is positive-downwards in the X
- X * window system, angles increase in the clockwise direction. This is what we
- X * want. However, we rotate by -90 to get zero at the top instead of at the
- X * right.
- X */
- X
- X#define SCALE(i) ((i)<<16)
- X#define UNSCALE(i) ((i)>>16)
- X#define REMSCALE(i) (((i)&0xffff)*10000/65536*10)
- X
- X
- Xlong
- Xitheta(p1x, p1y, p2x, p2y)
- X int p1x, p1y, p2x, p2y;
- X{
- X long ax, ay, dx, dy;
- X long t;
- X
- X /*
- X * You might think that the code below should be:
- X *
- X * dx = p2x - p1x;
- X * dy = p2y - p1y;
- X *
- X * In the X window system, the x-axis is positive right and the y-axis is
- X * positive down. This puts the zero angle at the right, increasing
- X * clockwise. We want zero at the top, increasing clockwise. To do this,
- X * we swap the x and y values and negate the x delta. This is why the x's
- X * and y's and 1's and 2's are apparently jumbled.
- X */
- X
- X dx = p1y - p2y;
- X dy = p2x - p1x;
- X
- X ax = ABS(dx);
- X ay = ABS(dy);
- X
- X if (dx == 0 && dy == 0)
- X t = 0;
- X else
- X t = SCALE(dy) / (ax+ay);
- X
- X if (dx < 0)
- X t = SCALE(2)-t;
- X else if (dy < 0)
- X t = SCALE(4)+t;
- X t *= 90;
- X
- X
- X#ifdef notdef
- X /*
- X * Rotate so that zero is at top. We could do this by swapping and
- X * negating the dx and dy values above, but this would reduce readability.
- X */
- X t += SCALE(90);
- X if (t >= SCALE(360))
- X t -= SCALE(360);
- X#endif /* notdef */
- X
- X return t;
- X}
- X
- X
- X/*
- X * Compare two client structures for ordering within the global window order.
- X * Sort ordering is based first on screen number, then window state (open
- X * considered to be before closed), then window position. Return value if -1
- X * if c1 is before c2, 1 if c1 is after c2, and 0 if they are tied. The bool
- X * prev reverse the sense sort order. The NoFocus client is considered to
- X * come before all other clients, regardless of whether the prev bool is set.
- X *
- X * A static boolean value AngularTraversal controls whether the tranversal
- X * policy should be based on the angular position of the window. If false,
- X * the old policy of upper-left to lower-right is used.
- X */
- Xstatic int
- XcompareClients(c1, c2, prev)
- X Client *c1;
- X Client *c2;
- X Bool prev;
- X{
- X int pos1, pos2;
- X int x1, x2, y1, y2;
- X int LESS, GREATER;
- X static Bool AngularTraversal = True;
- X
- X /* First check if both or either are the NoFocus client. */
- X
- X if (c1->framewin == NULL && c2->framewin == NULL)
- X return 0;
- X if (c1->framewin == NULL)
- X return -1;
- X if (c2->framewin == NULL)
- X return 1;
- X
- X if (prev) {
- X LESS = 1;
- X GREATER = -1;
- X } else {
- X LESS = -1;
- X GREATER = 1;
- X }
- X
- X /* Compare screens. */
- X
- X if (c1->screen < c2->screen)
- X return LESS;
- X if (c1->screen > c2->screen)
- X return GREATER;
- X
- X /*
- X * Compare states. Note: this depends on the state values defined in
- X * Xutil.h. Notably, NormalState < IconicState. This will need to be
- X * changed if olwm adds any new state values.
- X */
- X if (c1->wmState < c2->wmState)
- X return LESS;
- X if (c1->wmState > c2->wmState)
- X return GREATER;
- X
- X /* They are both the same state. */
- X
- X if (AngularTraversal) {
- X
- X /* calculate angle to window center */
- X
- X long theta1, theta2;
- X WinRoot *root = c1->scrInfo->rootwin;
- X int rootcx = root->core.width / 2;
- X int rootcy = root->core.height / 2;
- X
- X if (c1->wmState == NormalState) {
- X x1 = c1->framewin->core.x + c1->framewin->core.width / 2;
- X y1 = c1->framewin->core.y + c1->framewin->core.height / 2;
- X x2 = c2->framewin->core.x + c2->framewin->core.width / 2;
- X y2 = c2->framewin->core.y + c2->framewin->core.height / 2;
- X } else {
- X x1 = c1->iconwin->core.x + c1->iconwin->core.width / 2;
- X y1 = c1->iconwin->core.y + c1->iconwin->core.height / 2;
- X x2 = c2->iconwin->core.x + c2->iconwin->core.width / 2;
- X y2 = c2->iconwin->core.y + c2->iconwin->core.height / 2;
- X }
- X
- X theta1 = itheta(rootcx, rootcy, x1, y1);
- X theta2 = itheta(rootcx, rootcy, x2, y2);
- X
- X if (theta1 < theta2)
- X return LESS;
- X else if (theta1 > theta2)
- X return GREATER;
- X
- X } else {
- X
- X /* Sort from upper-left to lower-right. */
- X
- X if (c1->wmState == NormalState) {
- X x1 = c1->framewin->core.x;
- X y1 = c1->framewin->core.y;
- X x2 = c2->framewin->core.x;
- X y2 = c2->framewin->core.y;
- X } else {
- X x1 = c1->iconwin->core.x;
- X y1 = c1->iconwin->core.y;
- X x2 = c2->iconwin->core.x;
- X y2 = c2->iconwin->core.y;
- X }
- X pos1 = MAX(x1,y1);
- X pos2 = MAX(x2,y2);
- X
- X if (pos1 < pos2)
- X return LESS;
- X if (pos1 > pos2)
- X return GREATER;
- X
- X /* Positions are tied. Compare scanline order. */
- X if (y1 < y2)
- X return LESS;
- X if (y1 > y2)
- X return GREATER;
- X if (x1 < x2)
- X return LESS;
- X if (x1 > x2)
- X return GREATER;
- X }
- X return 0;
- X}
- X
- X
- Xstatic void *
- XfindClient(cli, closure)
- X Client *cli;
- X FindClosure *closure;
- X{
- X switch (compareClients(cli, closure->cur, closure->prev)) {
- X case -1:
- X /* this is earlier in the sort order; ignore */
- X break;
- X case 0:
- X /*
- X * equal: if we've just seen the current client, advance to next;
- X * otherwise, ignore.
- X */
- X if (closure->seencur) {
- X closure->next = cli;
- X closure->seencur = False;
- X }
- X closure->seencur = (cli == closure->cur);
- X break;
- X case 1:
- X /*
- X * later in sort order; advance if earlier than later ones
- X * already seen.
- X */
- X if (closure->next == NULL)
- X closure->next = cli;
- X else if (compareClients(cli, closure->next, closure->prev) < 0)
- X closure->next = cli;
- X break;
- X }
- X return NULL;
- X}
- X
- X
- X/*
- X * Activate the next or previous popup window or pinned menu of the current
- X * application.
- X */
- Xstatic void
- XselectNextPrevWindow(dpy, ke, prev)
- X Display *dpy;
- X XKeyEvent *ke;
- X Bool prev;
- X{
- X GroupID grpid;
- X Group *group;
- X FindClosure closure;
- X
- X if (ke->type != KeyPress)
- X return;
- X
- X closure.prev = prev;
- X closure.cur = CurrentClient;
- X closure.next = NULL;
- X closure.seencur = False;
- X
- X (void) GroupApply(CurrentClient->groupid, findClient, &closure,
- X GROUP_LEADER | GROUP_DEPENDENT);
- X if (closure.next == NULL) {
- X /*
- X * We didn't find a suitable client. Wrap around by resetting the
- X * current client to the NoFocus client and searching again.
- X */
- X closure.cur = NoFocusWinInfo->core.client;
- X closure.next = NULL;
- X closure.seencur = False;
- X (void) GroupApply(CurrentClient->groupid, findClient, &closure,
- X GROUP_LEADER | GROUP_DEPENDENT);
- X }
- X
- X if (CurrentClient != closure.next)
- X ClientActivate(dpy, closure.next, ke->time);
- X}
- X
- X
- X/*
- X * Activate the next or previous application's base window.
- X */
- Xstatic void
- XselectNextPrevApp(dpy, ke, prev)
- X Display *dpy;
- X XKeyEvent *ke;
- X Bool prev;
- X{
- X Client *cli;
- X Client *next = NULL;
- X Client *first = NULL;
- X List *l = ActiveClientList;
- X int cmp;
- X Bool seencur = False;
- X
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient == NULL) {
- X /* Consider the current client to be the NoFocus client. */
- X ClientSetCurrent(NoFocusWinInfo->core.client);
- X }
- X
- X l = ActiveClientList;
- X for (cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) {
- X
- X /* skip special screen clients (including NoFocus client) */
- X if (cli->framewin == NULL)
- X continue;
- X
- X /* skip dependent followers */
- X if (cli->groupmask == GROUP_DEPENDENT)
- X continue;
- X
- X switch (compareClients(cli, CurrentClient, prev)) {
- X case -1:
- X /* earlier in the sort order: see if it's the first client */
- X if (first == NULL || compareClients(cli, first, prev) == -1)
- X first = cli;
- X break;
- X case 0:
- X /*
- X * equal: if we've just seen the current client, advance to next;
- X * otherwise, ignore.
- X */
- X if (seencur) {
- X next = cli;
- X seencur = False;
- X }
- X seencur = (cli == CurrentClient);
- X if (first == NULL)
- X first = cli;
- X break;
- X case 1:
- X /*
- X * later in sort order; advance if earlier than later ones
- X * already seen.
- X */
- X if (next == NULL)
- X next = cli;
- X else if (compareClients(cli, next, prev) < 0)
- X next = cli;
- X break;
- X }
- X }
- X
- X if (next != NULL)
- X ClientActivate(dpy, next, ke->time);
- X else
- X ClientActivate(dpy, first, ke->time);
- X}
- X
- X
- X/* ===== global functions ================================================= */
- X
- X
- X/*
- X * Beep on keystrokes, but only if the key isn't a modifier, and if beeping is
- X * enabled.
- X */
- Xvoid
- XKeyBeep(dpy,ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X /*
- X * REMIND: we should use xkeyevent->time to make sure that we don't send
- X * to many beep requests within a small period of time.
- X */
- X if ((FindModifierMask(ke->keycode) == 0) && (GRV.Beep == BeepAlways))
- X XBell(dpy,100);
- X}
- X
- X
- X/*
- X * Lock the colormap of the window under the pointer into the hardware.
- X */
- Xvoid
- XKeyLockColormap(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X InstallPointerColormap(dpy, ke->root, ke->x_root, ke->y_root, True);
- X}
- X
- X
- X/*
- X * Unlock the colormap; revert to color-follows-mouse mode.
- X */
- Xvoid
- XKeyUnlockColormap(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X UnlockColormap(dpy, ke->root, ke->x_root, ke->y_root);
- X}
- X
- X
- X/*
- X * KeyRaiseLowerPointer - raise or lower the window under the pointer
- X *
- X * Restack the window under the pointer, similar to the SunView Front key. If
- X * this window is at all occluded, raise it. If other windows are occluded by
- X * this window, lower it. (This is the behavior of the value Opposite for the
- X * stack-mode parameter of a ConfigureWindow request.)
- X *
- X * The behavior is different if this window is a transient window, or if this
- X * window has transient windows associated with it. If this window is a
- X * transient window, the parent and all transients are pushed to the back,
- X * with the transients remaining above the parent. If this window is a parent
- X * of any transient windows, all are raised to the front, with the parent
- X * remaining behind the transients.
- X *
- X * REMIND this is probably suboptimal behavior for transients and parents of
- X * transients, as the occlusion rule is not used for them. This may result in
- X * apparent misbehavior.
- X */
- Xvoid
- XKeyRaiseLowerPointer(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X Window child;
- X WinGeneric *childinfo;
- X Client *cli;
- X XWindowChanges xwc;
- X WinGeneric *owner;
- X Client *transient;
- X
- X if (ke->type != KeyPress)
- X return;
- X
- X /*
- X * If childUnderPointer returns a valid window structure, we use it. If
- X * childUnderPointer returns False, we go ahead and reconfigure any window
- X * found, even if we don't know about it. This is useful for restacking
- X * override-redirect windows.
- X */
- X if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) {
- X if (cli->transientFor != 0 &&
- X GRV.KeepTransientsAbove &&
- X (owner = WIGetInfo(cli->transientFor)) != NULL &&
- X owner->core.kind == WIN_PANE &&
- X owner->core.client != NULL) {
- X LowerWindow(owner->core.client->framewin);
- X ClientLowerTransients(owner->core.client);
- X } else {
- X transient = ClientRaiseTransients(cli);
- X if (transient != NULL) {
- X xwc.stack_mode = Below;
- X xwc.sibling = transient->framewin->core.self;
- X owner = WIGetInfo(child);
- X if (owner)
- X ConfigureWindow(dpy, owner, CWStackMode | CWSibling, &xwc);
- X else XConfigureWindow(dpy, child, CWStackMode | CWSibling, &xwc);
- X } else {
- X xwc.stack_mode = Opposite;
- X owner = WIGetInfo(child);
- X if (owner)
- X ConfigureWindow(dpy, owner, CWStackMode, &xwc);
- X else XConfigureWindow(dpy, child, CWStackMode, &xwc);
- X }
- X }
- X } else {
- X if (child != None) {
- X xwc.stack_mode = Opposite;
- X owner = WIGetInfo(child);
- X if (owner)
- X ConfigureWindow(dpy, owner, CWStackMode, &xwc);
- X XConfigureWindow(dpy, child, CWStackMode, &xwc);
- X }
- X }
- X}
- X
- X
- X/*
- X * Toggle the open/closed state of the window under the pointer.
- X */
- Xvoid
- XKeyOpenClosePointer(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X Window child;
- X WinGeneric *childinfo;
- X Client *cli;
- X
- X if (ke->type != KeyPress)
- X return;
- X
- X if (childUnderPointer(dpy, ke, &child, &childinfo, &cli))
- X ClientOpenCloseToggle(cli);
- X}
- X
- X
- X/*
- X * Set the focus to the window under the pointer. If there is no window under
- X * the pointer, set the focus to the no-focus window.
- X */
- Xvoid
- XKeyFocusToPointer(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X Window child;
- X WinGeneric *childinfo;
- X Client *cli;
- X
- X if (ke->type != KeyPress)
- X return;
- X
- X if (childUnderPointer(dpy, ke, &child, &childinfo, &cli))
- X ClientSetFocus(cli, True, ke->time);
- X else
- X NoFocusTakeFocus(dpy, ke->time, GetScrInfoOfRoot(ke->root));
- X}
- X
- X
- X/*
- X * Activate the base window of the next application.
- X */
- Xvoid
- XKeyNextApp(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X selectNextPrevApp(dpy, ke, False);
- X}
- X
- X
- X/*
- X * Activate the base window of the previous application.
- X */
- Xvoid
- XKeyPrevApp(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X selectNextPrevApp(dpy, ke, True);
- X}
- X
- X
- X/*
- X * Activate the next popup window or pinned menu of the current application.
- X */
- Xvoid
- XKeyNextWindow(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X selectNextPrevWindow(dpy, ke, False);
- X}
- X
- X
- X/*
- X * Activate the previous popup window or pinned menu of the current
- X * application.
- X */
- Xvoid
- XKeyPrevWindow(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X selectNextPrevWindow(dpy, ke, True);
- X}
- X
- X
- X/*
- X * Toggle between this and the previous active window.
- X */
- Xvoid
- XKeyToggleInput(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X Client *next;
- X
- X if (ke->type != KeyPress)
- X return;
- X
- X next = ClientGetLastCurrent();
- X ClientActivate(dpy, next, ke->time);
- X}
- X
- X
- X/*
- X * Toggle the pin if the active window, if any.
- X */
- Xvoid
- XKeyTogglePin(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (!ClientTogglePin(CurrentClient))
- X KeyBeep(dpy,ke);
- X}
- X
- X
- X/*
- X * Refresh the active window.
- X */
- Xvoid
- XKeyRefresh(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientRefresh(CurrentClient);
- X}
- X
- X
- X/*
- X * Raise the active window to the front.
- X */
- Xvoid
- XKeyFrontFocus(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientFront(CurrentClient);
- X}
- X
- X
- X/*
- X * Send the active window to the back.
- X */
- Xvoid
- XKeyBackFocus(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientBack(CurrentClient);
- X}
- X
- X
- X/*
- X * Toggle the open/close state of the active window.
- X */
- Xvoid
- XKeyOpenCloseFocus(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientOpenCloseToggle(CurrentClient);
- X}
- X
- X
- X/*
- X * Toggle the full/restored size of the active window.
- X */
- Xvoid
- XKeyFullRestore(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientFullRestoreSizeToggle(CurrentClient);
- X}
- X
- X
- X/*
- X * Quit the active window.
- X */
- Xvoid
- XKeyQuit(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientKill(CurrentClient, True);
- X}
- X
- X
- X/*
- X * Flash the owner window of the active window.
- X */
- Xvoid
- XKeyOwner(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientFlashOwner(CurrentClient);
- X}
- X
- X
- X/*
- X * Move the active window.
- X */
- Xvoid
- XKeyMove(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientMove(CurrentClient,ke);
- X}
- X
- X
- X/*
- X * Resize the active window.
- X */
- Xvoid
- XKeyResize(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type != KeyPress)
- X return;
- X
- X if (CurrentClient->framewin != NULL)
- X ClientResize(CurrentClient, ke, keyevent, NULL, NULL);
- X}
- X
- X
- X/*
- X * Bring up the Properties window for the active window.
- X */
- Xvoid
- XKeyProperties(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X /* REMIND - fill in when window properties implemented */
- X}
- X
- X
- X/*
- X * Bring up the workspace menu.
- X */
- Xvoid
- XKeyWorkspaceMenu(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X if (ke->type == KeyPress)
- X RootMenuShow(dpy, WIGetInfo(ke->root), ke);
- X}
- X
- X
- X/*
- X * Bring up the window menu for the active menu.
- X */
- Xvoid
- XKeyWindowMenu(dpy, ke)
- X Display *dpy;
- X XKeyEvent *ke;
- X{
- X WinGenericFrame *frameInfo = (WinGenericFrame *)CurrentClient->framewin;
- X
- X if (ke->type != KeyPress)
- X return;
- X
- X if (frameInfo == NULL || (frameInfo->core.client->wmDecors->menu_type == MENU_NONE))
- X KeyBeep(dpy, ke);
- X else {
- X ShowStandardMenu(frameInfo, ke, False);
- X }
- X}
- END_OF_FILE
- if test 18793 -ne `wc -c <'kbdfuncs.c'`; then
- echo shar: \"'kbdfuncs.c'\" unpacked with wrong size!
- fi
- # end of 'kbdfuncs.c'
- fi
- if test -f 'mem.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mem.h'\"
- else
- echo shar: Extracting \"'mem.h'\" \(1135 characters\)
- sed "s/^X//" >'mem.h' <<'END_OF_FILE'
- X/*
- X * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents
- X * pending in the U.S. and foreign countries. See LEGAL_NOTICE
- X * file for terms of the license.
- X */
- X
- X#ifndef _OLWM_MEM_H
- X#define _OLWM_MEM_H
- X
- X#ident "@(#)mem.h 26.9 91/09/14 SMI"
- X
- Xextern void *MemAlloc(); /* malloc frontend */
- Xextern void *MemCalloc(); /* calloc frontend */
- Xextern void MemFree(); /* free frontend */
- Xextern void *MemRealloc(); /* realloc frontend */
- X
- X#ifdef MEMDEBUG
- Xextern void *d_MemAlloc();
- Xextern void d_MemFree();
- Xextern void *d_MemRealloc();
- Xextern void *d_MemCalloc();
- X
- X#define MemAlloc(s) d_MemAlloc((s), __FILE__, __LINE__, NULL)
- X#define MemCalloc(n,s) d_MemCalloc((n),(s), __FILE__, __LINE__)
- X#define MemFree(p) d_MemFree(p)
- X#define MemRealloc(p,s) d_MemRealloc((p),(s))
- X
- X#define MemNew(X) d_MemAlloc(sizeof(X), __FILE__, __LINE__, #X)
- X#define MemNewString(s) (strcpy(d_MemAlloc(strlen(s)+1,__FILE__,__LINE__,"(string)"),s))
- X
- Xextern int MemAcct;
- Xextern int AcctTag;
- X#else
- X#define MemNew(t) ((t *)MemAlloc((unsigned int)sizeof(t)))
- X#define MemNewString(s) (strcpy(MemAlloc(strlen(s)+1),s))
- X#endif
- X
- X#endif /* _OLWM_MEM_H */
- END_OF_FILE
- if test 1135 -ne `wc -c <'mem.h'`; then
- echo shar: \"'mem.h'\" unpacked with wrong size!
- fi
- # end of 'mem.h'
- fi
- if test -f 'winframe.c.Z.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'winframe.c.Z.uu'\"
- else
- echo shar: Extracting \"'winframe.c.Z.uu'\" \(32539 characters\)
- sed "s/^X//" >'winframe.c.Z.uu' <<'END_OF_FILE'
- Xbegin 666 winframe.c.Z
- XM'YV0+U0H *$"A,*,:D #'D#9P\<M*<04,'1(P<.'*PL)@C!PP04^JX =$D
- XMS1@Y;^;DF4.G3)LY&Y.X&>,"I$@09,K,D3@23IB6;NC,&5CPH$$X9=R02>/F
- XM# BF(.B@*0.BBHLI-<,H!6'FC9PR/$&,>2.23D2=-:>4H<JDR)$@3+XX>4(E
- XMR9 B1(T:-).=6N<J*6D?,2Q!LS4:>"8&,RZ9PR+HB^4*!@1)J<01.( ()B
- XM1(H[3,W("=,&\I@$,5S$,,S&SITV(.P,WOEF9(P7,U[DD"&"<L"\0L(\)F/8
- XM3>7+2>EHYNP9M!O1I$TGD&'#!0T<"7+<AI'C10P:()LDZ4U0,F7+,]G4R0F"
- XMQV Y;MZX0./C>/KU5'FP7"J?OOTQZK&GGUE,G3%??>@!B%][6,1P&Q8I'?A?
- XM@/DU^"!C8DB8((4,.O@"%G70T9>&3"DHH(4?_O1&&R3>)^ ;;)R!QPLPRBCA
- XMA N*D$8,.+@Q7V\;Y@@C&V^,$89?/^+(G@BEL8@&D"5R* *,KR49Y)+.61EE
- XMCJ6Y48>6+E(EPADHU0$'F":*>0:18APY1Y(*!*3"G'36:>>=>.:IYYY\YJE
- XM06N^T28;./T4QI]])JKHHHS6.9D"9>#1$GP@!$''BI5>V@8399A!AQ%OO#'I
- XM#I!*.MA(EF*::AM22$01J*(.1FJDDZ*J::8K4A'&&F6 .D8=<\QJ*J6KXMH&
- XM$6:P08<0=+A!:IP%25&$>$X0 4(+7$E4QU>&A0@"&F_<$=4;()Q11D41$7=8
- XM8FG,0=!DM)[Z5% @2*%3&GJ4\<54KM*QD;T[Y?L%:&1(]:R<C2:LL,)_@@!'
- XM1';\1!49AB*Z\,48[_GH"#GQY0951D@11!-%?%&$%44X0<47300QQ1)Z(21$
- XMB)>Z <57<\S1A'!K@, '"#/34;.]?@E7QLYS]/PS%P/%[/334!M4!!YPI+3M
- XMT3S[##3-M34A:AI=9[UTTU&7'74100UV!5-DA(NTTB!P&H9L:ROEMM@@,&WV
- XMWD^') 9+<M0Q!AU7V[O45X._K;7>?#=^D*_ #H&&5N8J_O/-#@U&1QZ24XYU
- XMTBE4UC%3((M,LLDHJRP7$2R[O$0"*( P==5S7&VY[&G+47?;=]S.= + )V"0
- XMW'2S?7?26OL-N."$?V5X&HC3X;L"P0L/ N1S=-[4YW!CCI0<FVM?>=:A0UOO
- XMM$E4"\)7=WC5LU3M@L!2'68@-@>Y:51DY$B3*^473FFHWV"2X[ W,*4B =/)
- XMNT37*=)=SW0E>T(5J,"$])7L"DD@ A60H!<9,-!CI1M9R:90A+8,@0I%8!T&
- XM-<C!@\S ()1AR4],PA V"&<.4-!*KT93&K'8,&<Y_)@1>%B&@V7LB$BD4\,
- XM<X<PR($,+<@)@)Q8!N*8022# YL;AI+$+F+L43(4T1AB8T#B/(8.5,B?7ZA
- XM*Q2D@%1AI*$=RBB_<\%J4FR4E!M)-<?+7(^(58 #Q5HRA<DA98^^\:(B$]:P
- XM@!4(!%HACA2],L/:%' G(JK-(Z\XDTQNT6*+#"6?'A40G)1A+*/QY"7SI\5'
- XMJF RI80#':: +ZI@*R>3:H,#I4*5JAU0?K4$P1W*< )NM4\.:W@D:*02&8*<
- XMCUK6@I^[.)E%2\8O#-\*PQAZ=@<TF 0-\@-7'=A '#%0Y2MPL.$8JBC,_('S
- XM4,Y<4Q[@ ,ZNT.MAF0-?'IKY2@7$<8P'5( L:9DO%)RA7:$[PFCH:9(Y?"$T
- XMY%+!08.E@#T<QPP= \$3A#"%)[0%A=2;PS+' $X4 *R6^P++1.@0N@18- %&
- XM>HQ%8* #ZB7@*\VS#0Q(!5.C620&-04>3K=E&QGP-*94B8$,@GK3<Q'5(C0X
- XMJD^_P]2A4NHB/.U8&,9)AZHZ]:HP6 $*4'# %* !BZH@3-/*C!^K30%;Z1>
- XM'RJ3E*68@7I6'0D4#!B4!'[A"&R8)QH,BE!2S=6?=)@A0(.B *JE9 A$>DS0
- XM:D;8.21TH=X<@T,A2I")DNJE>778+&M9V12L(&0B_(($*6C!+ZQP@X:-86+%
- XM."\Z*&">CXUL&29;FX0PA@43#1UDTT! %0 H#:12:!@8JMF'/B>BGJTHV9Z"
- XM&!0$00QB^(H=6):4.O#6#5] @DHI4MKV?*L,8<B)',3;+]^F ;@(;6E>37JO
- XM? 6!,.$=+QU**]:II'<P[%VI>^%KV19<-[MEV&X3NOO=_+8WN"EX@0SB:I0R
- XML.$Q>/WJ2-A:AONVP<$"#JY8!TK:X/K !S18P81CBUC%UK:QM(,"L- !::4
- XM5@'*9>YFG]O9=GTVPSD%@6.SI]OOEI;%_WPQ;G$XXQJ[8<#!5<!PBWO<Y&*V
- XMH<[M2H\I:E&C!! $*)#Q'&C,E">$",3D#:YY_:O> )/WN 2&*Y")2M\$>AC-
- XM^Q4Q"M@,8/U"&:$M$#.9W6!F.N"YM!%>\70MC.&F!IG#=W9SGA$ZXM$6U,0H
- XMCNMADQS025+A#6FD@U]NG./,[EC+$O6Q="V#T4Z!8"Y4($(1C#!G2J% !BH8
- XM,F13LENN/1G"N"'5".H:P%J/! 4DOC1"3ZSHPY926M 42__,Q:YI8E&5EP(!
- XML*A2(SR H W:1(F[LDVKT0PN+_9$8##-PVG&\GF]?H9SE*=,+^,RQLK+-766
- XMH:OJE_XRW10!00] < 0I6,$%H?8+J((BDZZTP ?"62>];*J7%1#<X A78Z]J
- XM0X>&O^'A.9F#Q.G T]"V# O6Q:YVN>NE!DNZM"P .!U6, --)_*9Z8NF-ZW=
- XM22V&DRSDA.2%R65.:7N..-G>-FMD].UPIV2![;9M5V(%[_;*&Z%29@R5[XWC
- XM*S>7LZGFLK$O?O"$;YSASWUXQ EH\8*77>,+[WC:?1#RD5//*!:'-'Y?'EP6
- XMF\^M%'D!P:3"E6MKT5W]C+H" (]&APPQ.BAP3NCJ%L0=1H<@SOEQ NA=$7NG
- XM0>#M=,/#46D:K0>%IZ7&,D03$'8G> 7<A!IXW8Z0A,@SA05SD4++XD)[)QCA
- XM"7&EWI?=^_#7$.&47IG#PY,5AC.XRP0@N$(3CH_*2KI!O/^50TL=_=0$O/OE
- XM5Y^#ZPESI(6LP*;348'>/\SW=HT?]G%- *.I,OSC%O]8R)>#\GW ?.># /K2
- XMYWK4YQ7;%UH[13WS9U.AM7Z'-E'O5WY(-ELT%%",)P2BHBF/5QJVYP:3QQ25
- XMEX%4H0*9)UV;9WJ==UR@YQRCYQ6E1URG1SVI]W7/Q7H.^'I' GJS5WO.@7M/
- XMH'MP\5?I\WO!EP#UQQCW-X#ZMWPVY'\ .'WY9WUW-!@%J&%<$2J3 GZ_58/D
- XMQP;FAWX,V'[B9X-<R%/S1UU@9G\^8'SYMW_]]WS1UP0"F']3&&0'*'\75@8*
- XM2(5?Z&=:"'\1Z&*_I "#AP:MLE(@N($=:#,Z!(*8QQ2:QWD$@8(#IX(^0'HN
- XM<%S)\2Q$6%UHJ(:HQ(9+Z(8!^ 9(V%)&88 EIX?UU6'XM38%,U@YN($\Z(.\
- XM%X3 9W,M1EN!.(B<XBF'*'D*0'F+2$2-Z"PD"(F>EX),L8)?<8DFJ(E%F 9'
- XMN(9*V'RB"(>D*(=W=Q"H.'8,Z(I2@0*QN(.YMWM Z'NWR&(((TKLB"<-DV#)
- XMT0+]0P:,T12%UW.UP47MN(]V0DH"X4SS^#_PV%=5&!B\Q!5$1!1Y006*\179
- XM]W/C5$Y4$09-Q"WK<I!FH$T5(14_ 0)B("K@=) B(FIET"9RD!?.P3N0M!48
- XM28PI&2Z0Q"UA($"#PT[=E!2)014O>0<G,!3.U!6_XBZ15$=^,3CR,UOTYRXD
- XM=70U 0(,J9/&(R[@Y@;--QC")!QY84[*%!%"@Y/F!!A4<9!/@!1NP 2ATC-S
- XM@!0T<95*N2+I="[L=#]/41'MDA?QL9&*T08I41&=PA=CX((5$7)A,93QDTI3
- XM$1@4N08521Q0D4[:A!8*Z4Q/>95Y4(5!^4CQ$Y#L%'*#(1ON<C\]]!- X4E-
- XM"2J(F1>X% 9]L9DZ<1)I($L^MR[@(BY "2R/-&9 )Y'9Y#]QN19Y<9 R,2DM
- XM (D-T09M(!(F87T,41NR$12'1Q):40='TI1)< )L0"@')1MY@4UE,A&&(1MR
- XM8 ?$)2[F1"1WP$]Y$00^!)ABH17:)E.UP6V(T17;,B]PX"UZF1,7I@,&X7H@
- XM(!/WZ2\@D$,YDP:RP0)Y899&<IV5&019=* $QR9'$EB5\J"081!7,!4CX5'2
- XM]Q3N A6UJ7Q=<9WAHGQYH9=*EY]EL!$AZJ&[28_L!!78E)'00Z& HYHKQ41.
- XM1!Q3^3%RP$_1IZ$Y*1;;<C^!D1RS 4FAQSL;L1-G0)5^44Z5V9*79RY"4R#;
- XM.1)H,RFN)R)F4)D#*: <V@1U)!1#VJ*,P2O55E/EX4QZX9\ ZBU.@RU$0"YW
- XMZ4U- :1Z0: [(1M0@RUJ@9=_423 \IZ/A 6!&J>?0JAODA=ZH: 3VJ 6:A"
- XM>BYGRJB&:H^(>BZ*BCUZ:A2 )2B16J$BXJ>5*JB66:AB4)F/H12/A$VED3-5
- XMZ:B.$S/9=I"8&!3HZ4P9BI-CZJ)0<5S;U *7T@(MJJ(LBJG7Y)'Y\VTL*!9N
- XMR1A&TA)D *0,&3_Q0P9U$);D@I$:F1@=>9#;%AC[XS XXRZ\,Q)0<9"3E$I:
- XMM)UEPI**D:L5L9,K*4FCX10'N9,;,92P5J:7&I1 F@2((:Z/$1AJ "SZ(ZUK
- XM !/M)!5D41%Z*9Y-L1'KJACMJIR\-!+#E!=G%+# TI13\ 8;,4PX41LG4!%K
- XM$!_B<I.\9)#D\K$8B:EET1>_J1ABX&OK8V'H)5-AVI1!8[$%JQCC:JXZ\1CH
- XM&B[J.A*\E!?TNJ0P:;+'R1( .[-!^13&645I(#&!U937^J&?V:U$>[!.ZYYG
- XMT*WDXI[# AO=]$TGJT!WF4U^:K7 LA$/<[0G>P=NL!&1EUEHX+'G,FZ*$:(I
- XML!$3&Y;S6J1>T:];\15%(U,'F;-"8TG9]AA%:5O.!)IA22O)>J1X0!IO29U#
- XM2Q5/&S]\:J#<%AB0RJ"DBKH(ZDPF.SE^BDT^4:!^2B9A( ;%,:0D9$)4X)&^
- XMYK4[YZ*S*4Q4H9F >Z7V2+?N8B:6)+DU8[0Y<Z\[^[B#:I"#2Q:!P10!>J)O
- XM$')L^H]%813?=3-'2ZME Z=N$*!/0Z?DTJ5X:B#H&S6GZZ?M^Y^C*[WNTD0?
- XMRK3S:H*O.[ZU:C8RF[U!.;]0L[H4ZJ"E2A77@K]#>K?3R[_S,J3T&L #S#<%
- XM/*@'[*9F$ZJ#LL"3ZKZO!I(%LJL";!#?130]BX<>G+[DHJCW6Z<E##]YBL!/
- XM4[\./*<@8:G,VY17P&UN0*%6>EY?@<,9'#-?%KDZ*\'[*QRO1A?S@L1);!2X
- XM:H*?6C8*+*D-3*D]C*HA"L1"3,26>I@NG,)5K,3Y"[V6Y,1L&<6_RQ14G,86
- XMC,5S#*H2RKH,C+H/K!9; :M'6Y7C4L> R4_^F!=ANC-P8"]QL*U4VP+8<I ^
- XM\3$N>K8(B2DFH4ECE&WQL85'*3$^F7@2N%BVE<C+Q<B.O%]D\! ;$:8L2D0>
- XM%SI$T"Z.F0>LM\IY0"I84 3-J1PJ$*:D(HQ"1(PJ !VEX7&/:(*1R!B@9\QE
- XMX'',V(*92!E/4TIFH168Y'.B@2E),!9N0$->$7WN1 :CH;<+]#31>']3@)0"
- XM-W#=K,GK+#$@L!!=5C;QW!+O[ ;OYUX4YC1] (7E5&R)@15< 0(>(<@4,]G
- XM(P<HH3M.],U-@0(Z\J1>\4B*C,HZP9>]O+O.[ (BT,\Q,U?#YJJ(44H#7= +
- XMY&SB"P)AVA#/H2W.4P:-G-'7$LF*,<E)&15RD >/E&U+N3W0^M)GL"W6QVZC
- XM_&(M71M\,=0Q/=,L@0*XW,J]_,K1$<L*,,MI:4.VK *XK,N\G!RL!\S!Z('#
- XM>'G%#,O/E<SLF8P#Y\S07(DLZ(R R5/"7 ; (X)D3<D#)XYY708JD )N/7=F
- XM8(DX/8+4PWDNO=17,V#.47DL$*:X^!N9R[.#,US;Q(B0/*26>TH5P<;\ \7F
- XMA)/"RBMD8-2 R%B;7=D,>XA1S=)3C9!5_5RR3,M:?<L/X=6]'-:]',Q]S8AG
- XM'=M=H=8$Q'J2"-O'/'>62*_/@L[5%0)NYP+8 RHD>@<Z0Q:/$3I/\U(E")B!
- XMBCT#1@6!LZ)A^G!XX-DN("*E =)Z\<\ K=* >[EU6@=BX!>6O0:8;=-4D=J=
- XMK;.3XRZA/1)M(]]^T0*C746FK8NH3=ET$-_S70;US=JL[-K)0=7'W16SG=5A
- XML-5=K0"[G-N_O-MCK8C#;-:!'=S2Y675]=QJ<;F?=@9K4@;QO$T%TE*<%QS;
- XMA (E_G%PW8STJMX)N-W)803CQ 8 <RE?05!ET.(OCN-H[7 [+LU!$=DKK=]$
- XMD*_WK=D*#KR3^]G^O18]<:[L-)2'2QQ)0183D1<)<*L1X>)6B4WDW'R&G(L3
- XMF.#P;>5$!-41[LK&_<S/M1$_1 =.?.&U3! ;WN'%)=9U[=LYKLO?]=7U]N=.
- XM+-Q!X36RP>3 K>/)#<"0?JY2?J+=9;XY<^4'V25UH.71V]\>Z>7Z:^!0=]0!
- XM1>J@/@<0G@>//=4Y+NA:3>BWS>&.WGF(WMO$O.@G?A##E^/1+-?QF(;X]XD/
- XM1^I?L#E( 0(A,' DXP15(!=/X 1%T%*%%"[QK!0[NF!>8ND53K(2'A0;801N
- XM4@:=/MF7&^NBKACZ;1B(208)2[6>G4U=CI-.S.JB?-JVI=]!8.\*"^]WWMIZ
- XM?NM73=L9;MNYS.L>_NLB;GD]]-OE+NDGR,QMW>28'M?*3<U.4TH$.Z3Y[L84
- XM?+$N_#0%<<%5JQC<ZRUA/%UZT4] 'A3=S:@#INYW6.O)7M[!B][L[G>271#I
- XM=>]T\.#$F-D'6?0*:^J6A.K_O>JEW>H KP!,SQ)(#WD(_]H*C]6U[/"X#=8?
- XM/LV)'NP<C_'+_'D;?^G'_O$R?Q!*[A<KSME:-G3@?D;=Y K]XH#F;.C7'1
- XM/20EZC7;AMU.H]V<=_-!^=WAS?-!D?<_GP;I32I/P]X*X-[.%*9;.AA=&D!Y
- XM$)D%,?*2S%>3PM*Y,TTH 1N2K$,;$62'D;\5"0<MT";;Q!5+V)0T+$T [4PR
- XM2@9+@6UI>YU#VLFPM^='23^(T3:4O*H$!X*]OOERT/E?&N>*I_FY(_UY@.>T
- XM?O<4SN<6OO 8KN&[;NB9,?8O6/8D?O;#;A##-]X^@ <GD1([D:>IV1?M7,.>
- XMWW"# 3;:1SW&[@.^)'<D@3EP!9P(4B . T?G/8;EAA#Z"!E8"$? ^?4RZ(?]
- XMM)]4FW![+I:IHY46IHA'&<!^>2$OC#R3Y9!8EU_P%$.*7PVI^D<H0(/P*SJ:
- XMRX8Y!9!DE3B2<7 FV$__102O(+J,5TRB/R,A1!DKP4?=6@"*DBG(JMI +7&A
- XM6]S%S>)@(<L@!(&ALQ%$P@:[2G) ]M&^GM%_S-#H.R!6"=6=+4H6L78">WB"
- XM>X[ZN3K&T@'1BVRH@%L/ W8]AB?^'A[Y\V42[P.9O4OW8XQ"*>$)SRI,*:6M
- XM,AP\4F7"77_CG!&[ZN+^X)^XF7\&0D5)NX_1X0%S(V#)#],<)>1M[B7X&B
- XM?^="-1&*:8?_OI0.Y'\MY?\%P$DQ M@%F0G"7#=";V5]N;N /91+S-#)<P
- XM:W%+RMEY>4A0(6>IA$_6$L#,+G16.0&[_3O:X@ 50"V\A8,A%^:!76@!0\]&
- XM@#-$R? 9!*^7Z[C:KC,*Z*_BC2"C@(RJS'2Q0#""*&F>W0&3+!=BF$3+Z,FY
- XM '?(4WZ)N("'HD<>#J)Z2"^<2!M _RP(OC#.X!ZAD ". -C /5XG5/S!FB0
- XMJA$^G,@(^8!V@3WHV38R" @1!S&%(S $9-%_<@)08(+\GB%0!:; 7QD"\<<H
- XM3!2-Z 9HCT=,'R&1"HS$DGB.A!!/F2MV2*:\%)4X1F3/1NR(.RCZY)PG< 5.
- XM8DH\""O1)[9$'71[HA@MJHG YR92A@3@#\')P-E##Z:P4(^!"'J^T64(1WUG
- XM*F(!(] 7B!QGHQRCIK6YPXV $/L58;@#;O$?;@2;<@=: *X9B!N!\7P:./"+
- XMF$(*: %5,?Z,Q;)H+P8'6BP#U7 MBK.6"!1O#T&; EG *,9%N!B3Y") QYU
- XM\2Z^Q;RH7_9B7^1 @)$PH('XTVV^0"U\=FUDHC0I"V,&2E8\'&QQC2J5!M>8
- XM#T>27\ #<Q$SQD/;6 :V'PS8"![E"& !;$>+<!&T0$WE#!K* 6DH W@A3O"%
- XM[Z:""4-6Q<YNC;504<IP,B299O@,T0LN!!9YH#E6PZ"(#2V7-@0!W###Z;J'
- XM!PZ!G5D;AP>A''(=\A4J"(7E6H=1B2B]P]!S[.BA\*$7]Y _ZL.O"!#_HT 4
- XMC0&Q,A)$&&00$:)"S#>J9P:%'6@4$:711)1UC,HB6@^,V!,7(T=\B2!1)#X!
- XMDF@2.>)1Q(CQ0RFZQ* ($T4DB82*\0<GEJ&=B!0[Y.QIC'M+*%8+HF@4>8I*
- XM3)$>DBGFR'+T@WJ/390K4[$J=L55%&GXD%:DBF]Q2=J95D0@C\Q4+"5\0?B!
- XM*")"X& $"R(.5 2;E">8Q!M-T@)) (/Q.A7&Q-(4TF*$4XQM44'&1320&Q-
- XM9E0!>/&\] O/>.<D3VC\AX*1+*K)L]@F$:-:9(T;X4;*HL<8&4WD9)R3=?).
- XMYDF]Z'CZI%_\DZ-1$V')LEC![)5L!()10>.829J'!:H<15IG$2&B'4HVT!H]
- XM)(YD ;]'6A0<"5(M)"-=W(T:!S<*2-Y(ZVYE/H2-S>A3TL:'\RDY15.0"L9Q
- XMZ#U'BJ0<@X,<.(:]D"(-J7?C&@D/VT!25@13F4D4< RQXX&3(V7$&29'[Q@-
- XMG0@U;&WD\;=D0_ WZ+SAPPN'(6@$R4?DH@#0H7VT,/C1;H@+=ZB,\J$E\H]$
- XM"$#VRV.W#QGD04R(,&@A[AN'2%$"YH'\AQ3R#$E$BI@A$]I%+!<V\B>"R)@X
- XM$TLD2O212!%(CJ.FV")EXHBDB48R*B+)G$@5:"2'9(D?,BABD!U9%$TDR$21
- XM[D)%"LF-0"1K$3J*D5M1-$K)6M(DLZ)ET41ITBP:QD*9&!$EQD10NO$5]:)/
- XM82DY$&?<DY42\OC)JA@I6P OZA144VM>RD%4B%Y%U2Q<E3%33L72>!H_$AZH
- XM+*N15;I&J0DV/R/:Y)J7T4YZ30(Y->WFWGQ%93-L:B#)4R<I)5\\FRW@UN!)
- XMT5BX;$IP'([IPPH\@2600C8">-M60XAMEC/4J$=4HWX<EOS'$@G+79DK(R6N
- XM)$F^$3@R >'X!2+GY$PAR9(6CLOLPP1(QQR ELM27!PD:OFP0E+[2%7NHAXI
- XM$&YY';\7N_N68X0[SD[U4CL_QNTD N.Q*99'"X/KU*.[Y&T3S[?)2V7F>4B%
- XMO52')(@=[DO6.##E(<#\)1%+> XBT&.Y?@!J.1V]JPB<D!3B6C+(!M$![S."
- XM3) *HNWJ)PM)D &2$EFB@NDP%P/I.($"2GCZ!6/T3Q+ ]R0I[8)GD0'LT3P5
- XM2"R\0P7Q8#Y(';,P)Z2!3)L)<B!&3.)S(2NBQ=R0&!-FOLJ/R#%/IL<\D>5"
- XM9&[$G<E"723*M$5 DV6>4)ZH0CWBS"0"/-)F7LRD&"0]8L^$D5(12O[#H6E?
- XM]HZ3/)I!LPT$2*_XBJPD]4B::_(P-DVY^33E9-KLFII1BE[-E<(GQ29H#(R:
- XM2'-2),XY:1R68J1$P!(RC$Y*Q!MUI:]\.+QR(_Q&C;(ZAV//'$+I3-DA(5!D
- XMC?[/&T)"UH?#Y"Z_H"&-@@(%FTQ47ZQ/BQ,#;J8!_1@+- 4],,7)808&@5P(
- XMV,*HR!66AM!<YB7E62@0'M)-7W0V+>DC'0F3Z(%]359J1D%I.P&<_<)N2L6I
- XM6']VC@2EH+:SD1X$-7H'OH#;A)N?\Y0BT(V0/DG'(%H!,0!J @^#\$HW@@Q0
- XMG:S3=5).(J!'AY!1(*;&] V\3<_Y1OEFW3R;TM1Z&$Z_20/2J4&HB[-4<")&
- XM/TDV<RDZ13\&X9KRT6SJ!"3G-NVF-Y&4ZL2+"4Y;@J3X E'*7"!3Q?A(/04S
- XM#1'JDT!"TW0J/%XI#"VHM *A5A&%2DZ=9CRUF]+4**Q3Q#D#ZJ11@*?FE)8.
- XMSK%)( .GW02:A^4X.I/NF'U<#_; G;5P6I)+.5 MQ4E%:%'$$QD>3ZK'#,,E
- XM354O-I51G<L(ER[?R[I,CY7I>H8X/?@>'5'666OF\'O>Q_"9'_DE/NR/K!&
- XMEL\!2B WJ+Y9/:U'#,',G7E$4V;\^25*\BHR22=J-"WA6^V'45*N3LD/ XX&
- XM2Q^"0&)14"I--KGD5F6K5)0[Z(<&493X*+]HWI24FU%/DM&LN5+/*.-,HS$"
- XM#YC&S6E0VZ@EC)NM$HZ*SN@ .NNHZ:R-&B=U[E,_VH-V3^S<?07AJ)9+.= <
- XM'UA.W9T[M:?."_!$K8"G1W(B8*:V>DNB"BXO@[ADECO568I'="D]U:5Y9)?=
- XM<,/!RV)$*N:E]ZR/X/.EB$_].%;CVOD4F%]U0+ZB#.H@$R:$E$%=@6&&4 3)
- XM2RODPZ&804F8ODP5N4)+9L?LD4-4AB[%C6E#2R0.3:(S<HAF3,;H0X=BS?R8
- XM^35G%M&@V%;_Z\J,J_5BKK*?)SJ$2DE.=69=DDA\!>(0/0YCJC-/H9(DF4FW
- XM>2:Q**$LK&_2:;;%6[E*Y2DB&J,4H8Q6UK^(-^GBWY0*?1-QUE-#A$[39H6-
- XMK;YPOFF3]R$J@6NV81O)J1C*@&QYM5" B5V:+^X]Z82[4Q# $ID@"UMA+&C8
- XM@I0MKI,I(I6"-8LR3<.:*#7F#HJ5;D$*T$K6X2A9+(X]I[5T3K: :/I8;RP:
- XMR+&UU,ZZU!YK4T9JGE6<@1&:_M@N2RB@@J<T:Y,!39K*.X J"\06;94K5C>B
- XM5I*D*^EH:I6FHC4VDE8!62R3PAE EK,0.2)7VFD[:VNTU)V*@7<NDWJ"J82G
- XMN[".0C4[RKGD:527YV"HH'-@N3+5YNI4GRM478_8DZJ*0ZMJ7>LE=MVJVK6K
- XMDL_P^B_#Z@=MIA]C?0Z<]ID_OT#\G)\JQ'XB ?P)053+_FPMKP4)B%5F&]<(
- XM*$?4H.:5@Z+5Z%) J^)ZE:(C% W!5V A7U,H?>6O)O-%"E$42D1'9HZTKRX4
- XMB:[, ,MO!VS,;(IH=E96@5JY;W^D@O6W/+.U%DD'FP!P(H3%BB'F27)%O4HT
- XMJ605#8O48U-JR2#();7LE_R!8M+"D,DBBY@<4HD-LR?636X_.#D&&FN-Q8QV
- XM<7&*4<D:8RGK/+V4:/1*5EE.:6CSXZ<LL8NVT:K*%,M%$>OM2;AJ=N&R6<9*
- XM<0Z"I:6TI?725MUW^AI'ZVSDM-'!6'Y:M1ER@:RTE $.(PW@ 0L3%2:41U(G
- XM7%!9N:II%<Z$)R3Y2'.+Y:+<R^A,; _$\A9O #S= :[4TQK2*H)6\&$V?-E$
- XM&T@]4?*I1DSHD#XA3Z)(&]SV>;*$5>:"UC)+8,]L#TJS:U8RYLT$T$F?*9V%
- XMMF7 ]-9)O<E)5Y$G?45_49\J&I9I4S"O%B6SKE(60=W0ZRA'[T?ML:A7]?I>
- XM.XMG9ZR>M:=Q%@0HFK*;.Y5OVEV[A"*QO$"XZUN1+-T-#'9W3.I.O1LF7RYA
- XMC+F&DND>5C/[=#^OPF6XC/6QIE072SAY;N,YG'FVI-K8WYMG=ZS93+[-AC+(
- XM5+-K"W=J4@U*IK;YXM;LTU,CEF^%M<-U&1;7TB9;H]\;P!ZZ=OLUU;A9/:.J
- XM='6/P]88%5NMBB^YJK[DKN2V&7W7>M5=FQ$!A:M"D^,VT0G;7B!N@_V9=_5A
- XM3E$)ZUJJI N6N#Y3" W:+%EH26YTR+ GM_MJWQ#K%T9EHK6]8U;\<MZ#N[<4
- XMZX&]FY'UYNK-,$H9_:SQ#;K,EP=W2J-[>=:5WB6529= +-V9ZS2=[M[:O5)7
- XM]-Y1'V!:22?JQ+1=5]-^74K4:8^EVHRI%K:<1:' <&HO%=5!GF3$N-;"/1P]
- XM<^1QJ<# =JJ6M0Q<7;FG.4RV']BK"LAFRRK'[20NMV7U@UK%2]R,&$^"_%*@
- XM!PW((_UB@297&]"E'[1-6"[2D2#!C1PX*,:H@$X=.B!MA<D#PS6N&!8GR#@P
- XMBVMQ+R:0(. %@("H\D&'6E>2 PE2_R06\.'GP T>&$0;@?P\XTR< &(00U2O
- XM!K.\MEOV"A$EIH6<MY9EA];('LHB0V2^19D(EM_JUQ5),LWQ?76K +:4"EAR
- XMW!2=,'Y5QP]WAAI1'"QP*Z[0);05#,.:W V[=W-7X!U45.=,JF(+XT#:6F5J
- XM.QC'[,2=M[9VZ$7>H<%@*/Y<7(Q,87F*,2Y] R?9(,:PF !R,51(@-UVM?#/
- XM"Z)M08#%$<E6%$W"7"BK>9-II+63ZQ>D<H5>B1EE:4X^FSX9E_+8.&M39G&?
- XML3KJ$L)HRFB!/M2'R5)^*<MAJ"9Z<9"8Q+-R(BCA#H@ +T@K7)19P"(2@SCT
- XMDVX\5B@1 MW#+F"2"L@U]RJLT&!(R\#8XGQD*70Q>4!;LT*#J-Z6$I2 *0"#
- XM1P))_"D^K"<X =<2:)UI,ZX%IOENNF6?Q0!/46)&1B'5[:\J*@.7!ZOH[0,
- XM#1]*1)G1\OKD 2" %^/E3RJ.#<)>[A=5*"$G%EX1//&6#;0(+P \7*3LE9!I
- XM'F0. ]/X%97/SMR8+[/!N)AL(#+KYKLL*M8GMI#&QKE<T Q9D9D16K%!H64Y
- XM'I[EWIR7S0N.&\VZ&5N(YN(,C+'%7-8^>KD@(-#47/I6LP+Q"]/K-><&V9R_
- XMC')@L,T'(3CC9L4LG1FS97[,W$@X$Q[B3(N[\V+0S^#$.R]G9-R<!RH*+253
- XM:R,%CID@SSX2X8'/!@$Y2^;0_(LQ,PJ5S[EY/Y/GY+R=^W-V5L['.(DJ8R=2
- XM$6(IMC#)(^$X ^@1NIA]46\&'#..H&;6S;I&.^M"]:CUV45;9AA=L?"I04#1
- XM&V$A"\]F/)\))#9EK<611<=#WKRCQ? 9,$7#=$:?1AO=4;DH9\ZE+]I)N],(
- XM+4.8\6]=Q1\C&@/H(TT<7>LLS)W!X3$$X-NJ&"*65?I(3\0JS6:H]($1L/&4
- XMM=NQUE*D-%T&(C!MO(;.E7I"5^MY@;,G,=N>6)7K<& VD"]5DB06H-[5V190
- XM-E"++1<(^ $/)+5<6Q22;5D(".!/U58E@UMM:XDAM0FFQK]D$YMJR.")/^A&
- XMWJN'Y@8_1;<:@Q5D)+TS?96O[5=RQ(]I=4&,&7!:O7!$>KRWA$ /DC52X!Z?
- XMV_)*EN4MAHRO\_C>[B" JV_3<1G*B-+Z]MAC(9J%.>46O+(B@3BLVB4(K;;L
- XM6);)WY<FAU\RS$7C)*4VTHL!&F_=DYHX<<V[AKUYL5ZK@'N-+ ?MA25&J)<_
- XM70HX$*0OT(KP<V S&J/F<XV$42RM6XO!>C!P1!;P&W\C7.37:A-=#TIU;0$A
- XMME<0UD. 8K, 48RQ6<#%SLL\I6%K7H\=I^7 Q/Z-);MDBV+%B;'A2LJ>R9EW
- XM7;, E@VR378+B-G06&;KZYHMY="TT<"IOO @N>G $+$#PYPFUT$U 6O'HZ8\
- XM]_31AI[,U1 'ZDOX:Z7J=,5K&M@1*^ICVX%?BC7NH.RV64_,9TUO$^Q:E474
- XM^H;^3#*$T/JM/N;5L]K!4@]P>DP]YZJ>ATYSC^Y1]/.WH3$G9M7Z9?4^SC(-
- XM%RQG>'NKU<4\EN:EHUG;ICA%IG];,=+9:.JC"S>!M(N@TQ(Q'M#MHQ=WSTQW
- XMZPZFZE]EV8!M*W3<J9"$,*.$A[&U6D)@:7V[ C,%!7+AS<S@8-!8BJ$YX@9K
- XMX;$VAU\(TN"1&*XHHL39XA)28EQ,ME"%$<@ B*MV_\T^A=CC .I>*ZB-0M?>
- XM<.W14%=5-X#,IDNQI8_I$-E.%P<(9HH9%C$KP:?OD=!V(0TMHO_#(BR1&CJ'
- XM6':I<V>S!(_'D#\U8.9(!#(A"/AGFMF]EM"*:5'*+I4%"2,%G"QD=3$2L$G$
- XM4 \Z"5S(E!@P^YJ5]05EOG5;?ID'GB]0PD((9VC*=H*9+Q.?[N96Z":\1OEV
- XM<+HT=T%X;24KB(&$#X8W<,(#PS'$X<6!W44&X4'S1$K^("E@9JP\M\ WW:J;
- XMTL'4JX$_P8"%X 4H#@IX;C*!MV(/). J&,-*>210_%.#@"F^$/B 3='5^ILI
- XM\&],C7:EN)QQ*1<3J8QQ'0 \J GH&>!.I#GN ."!8':%)97C0*6.X^^!TX!Q
- XMK1Y/ 'U\#?QQG[)4!/E,N..V=CF:RP+.QQV2(H_C/F4&T/$$8,<)>23'M;MP
- XMCR?R76H4$+@\YN2#?#&F<?(MV_IW _Z_P"* ^V__^X 9E1Z?+H?%** ]ST3
- XMS$K6UM[KB0*'VIFJAY->'Z92/60GF8> $ 2DP!&8 B4QA;R2!&!A'T),<@HN
- XMD% 4G6TCKH74<5(6K^E_0-7/9":J!OA@)PJ8E!W7.S#K:*-5@ZI@3Q&/N Q<
- XMOA5:#4G4:B_TO+5,-]= GB8$,W5CE?-O$P!]EO@,F*!$Q+*\/8-0"_GT4I7
- XM:KS/!?/U]%[GP-RK20^0\AV$!/0T&KK1\-/Z7*)C0V=]T:E5_%Z$WG@:,3O^
- XM$XH,J?1!I)Y$.;:4!IR]1;JZ).D*KHJ<]'].0AUO$F+IA;0)P70MLH?/HU$8
- XMQ(VYIG>%[?U&@G%!$,QVQ0P,D)E %<P)+59UM74H'<.QC/FJ+*/";.U)^ 6*
- XM0>%;-1-B:EQ5Q!<Z,T <4$)4.]_??8YP#6I;%L_A)>N!ZR;.7M9Q1J5Y(B 1
- XM\6Y1#:^3+,+%4W2UD)L)&TA[6Z):2$W@B@44[.VN(!P?P/$&\L"5"SEFH;*?
- XM*9>4'W&&]EHG0FDKB(:UL)(JTX0J$F&9*"2 01(&UP^PHP;(?O%W+RK\?
- XM//?:A>1G03]U*PY%?@-O6)M5,OJ9"5(4D3J4SVBN;53I8PV3-[]A/L;<^;
- XMD).OP(%XRH(YQ;\]L0LVKQOTR#)T]P'3N4FGRB==>X?(6M#N3BZ\3XIYZ*0A
- XM-YCY[DQZO?-H\@X\QF)VA^]86KS/N)1=!91" _D80T!QR0&EWO%$,&N,/\T]
- XMMHM/],[#K;M+,.\_M[8W^,N72.Q2ZO5F2^W*C84V$* F$@B(MD%-L;DK2[(N
- XMG-D29.N,)=IB>(GP&8$Y''"$Q_-K"W9=EMA@6AG :"RAUQ&$%W\2BL@Q$MOY
- XM_+OS\VF6 +ZW-1\X:&C#)8"Z5HPJ#^C1U4[^KWWW..H""IM5+:#1=D%B^=1;
- XM()?\1DP*^V^,@.T!9%8C9'I-JYY,9VX@Q_:"CR3UR/+]\JU1>2OO+S&Q;K8X
- XM]+>R\F^+<S'M+_O=[1,^ 41;50WHEP]ATR%_F_&X9/<K8R/\GN>[!Z$"&6SL
- XM;D8U8'L%,W">% IY.X\LJ8=VV_2G>CA_^-2KY7&RA#]VAV-SK'BGP <&SA"X
- XM GV5IR2 ,V)V\H@J8V6"W63W-;#**N//K+<CC=G6/W9 K^LG'J\W T"3+ _Z
- XM21C2G9SHUB\MY=,7>GFHZ ?.H)?UH!XRI/H\L.I]AJN_ I(FB7KW:;_8H8>J
- XM5VH2(=J?\;IQV,? FF=]HC/UTH[&;E8:&^N[I6]6I3IZV;9ZK?"^MW"^WCD,
- XMH#@_=P0^\K&D\KL3+;O'"]0C[TN?O%I$T#@9HVX0@(=VT^7L'HMLH '$ N+]
- XM'9CW[[O>,P6.CWZ&C,2W,7^5"Z73)7/RGTSXL:M\[R#XXZ>QB5*Z(*5?\:
- XM#?7:L&LDBZ^A^!7_XB.$C(_8#?Y8Z/BQ4=ZG!'J_\9%/.M4U1<;75!:[NO)I
- XM1\_O-5ONSX2A+62S%SH(\,? (Y#2[^1-T)N]CG,.TI#96SLFP 2V#\9G"NV>
- XMP1<?IB -D7ZP5/IS@.E_=[0/'E=OGO_W/!S&OM\6+]N2/?>A%-G>!6S[53_,
- XM"\(96?57[F.!^%5/U%2)7S;QRIRXJO/'C^[/0#LW^^?1R+/'@R#C 7T?C(]
- XMGN [>X_WC/SY'XD.@620P#A#@ABQ(637Z ;!KT>'0%7C/;_&_^6RS>\H'OWV
- XM^7,]\\;HH9\.HE"I&KZ%[0XK1N4;?;,!%*K?JLCI-P@@*/9+C$*R7 !_VP-@
- XMH!_W-S\B4M()?-QLWAF=PM^<$[4K8)Q:VEH7IJ8U'36E%5C5^[]!KIB;1*57
- XM>Y_&3&'6VC&<9X.G46WA$KC!*TP!]]^%,6 $=JT1G:?KD0$CFZL@7 !YI(+H
- XM%VPM8O&2&8 ]J21T'JE@#UT&$>!$H'G\$NU*7P5ZU"%GV[KE?JA5:MX=T!JU
- XM>2H3\[4SJ"DX0S !04UW. G-TW@M?#]=&^+2.2'5!^6UBBQ2QQ,<!SS,@#?>
- XM*C(>M4IFPC(UQ@%4-@42R&$L@540[;92S$TM0.D%KTUQLIX4J 2B2ZV2>>($
- XM[E'>Q$20!;I>C(>OYP4F$%3@8A N4&98H!;XBN1%KL(9Z%>D@:1<R%,0B!?&
- XMQ%]@XW4+ @II4!O,0"\+N] 4."S%RW&"Q*4ECXG7YTRP*Q!?/M)."#_FF;8!
- XM!U0P(HG&\5O]*%(0%62\.(*.GP^C&"!0>@G5L@I!$O6*WS*D\$9'R7C7GHP$
- XMY@0HF#MQ+.Z$ 08&R0%2G2LXKD&"0: 6(;24=J^+RK.['"3CV3P"3+ '3QLK
- XM:)(T)2< AL6&:1Q/0/UP H""#YQZ8J_L#W&+[%+5@21*"H 0 .HL0PGM,F/\
- XM?R*+N?.</8)3@6F'//AE#AJ=E)-4)K4!&8.J]']H #EH$'PMWT:(()VP 0]<
- XMI* @T 8<"Q1CGHT$1H)%@AA !4? N<"AC'QK2 4SO;T)8P H.!DP-S:?3T=(
- XM.7Q ("7A2;1\0-\)92>9 7.?&S#P[36S!Y@7$8AYVT<"@ 2V?(]= XCHW1XF
- XM7Y.!\JV 7!]%912P?#*ARY>%T(3P1\P7-92 $UI,.&8X&5.?&&)^C%XM7Z%1
- XM@WU</"%@5?FX?@F?1&010EXZ7R3H!EQ]WT5'^.F!A&D(0S@6/'DEH8]"0_PU
- XMZ <2:&0P@"P U,=K&!DI7^-4/1P$2P96*/6]?$:A3P@U (6BGEKH\V5];:%+
- XMAGX<&"N'N.-=^!I+(5C4%'(A((#X5\I-12X@'@4-U@]W7/YA EH<G@:HH7$4
- XMA5S?!I2\6 &U7E>&+90;W\I!<G0];?9*/%B9^&4&BWR2D^0%X@GXL ^>> O$
- XMK!6(E39G!&>H<0A[Z)+=\A)R(-/%;0>^D7ZYW5TG_HE/"4 '2!E8%$N)',!Z
- XMT $<G@&WF1EZ<E@1>-U!>)$'=!@L10?JS? Q%IT+)(43H/5$. [@_\$<P@$+
- XM00\P<'P$?,#/,![>/VM?VT<]U$6A4W0(>EQW3D#JI72= 5<<QG%\9"1<1=W@
- XM'4X^B\8I!Q]2>4<7M>,2U(>,EI.& HR'@5)VQR"*?W,%O>8#U&%C%_MD%BQ0
- XMU6%\>!T"B!+BIV0"#AQ8@*V7JSTW$AG' <P-B-Q=R4(LA5V>%JBE_I42M-YM
- XMZ!FR-)*"N8&JC(:P3WXTE'PL9L(JR'*A.6%2]18NQ8@D"6Z(Z[$ =!XBAMN)
- XM;^+0!@B3&(?^1C\4,?0%!%1RN..9!2R "C >&G!^4$&0 #QP"6&]PH65!E36
- XMHU#S98@$(G88!3YX]YUU*$=AAR-4". ]A(D!R'=(ZSB )@":R-W!%?46BB@?
- XM&HAM ()X'^:'!\=^N%4H"_XAG(@DO8<K8FD@=FEH@ .&Z"=NB-V=WC0A1@<?
- XM(@@0(M(*(V)$!G>8B!+=I/@FSF&-8AGP*))=K$9& 6O(&K0&530E8FPI",'D
- XMG_U]D8<MY>?](K:4C?4,DB31H 9(5Y T6]&KJ)C)BA_:K=@GV8J.(:]8/_ 4
- XM<X,H5(N='&<%"] L4HF?%)>(TJ$ TR*L")K!AQ[B)^7UV7-F0RG1!#0]7QF#
- XM5@QE@B1),^$X% 1DD3+F ST&],?HPBTL*R97!<>2+&C32LK3.! ]E."\,CGH
- XM'Y;@((.K>$D^@B.H\DR$C</P(4L$!M.664!2#'BBH@LP.IT .L )(&<X#N!B
- XM!K,PK@ KP [@U$$2GH)50C&> (I0&L,MLHAVV+40DID%LI2;*#%&![)>FL/A
- XMQ8H:XJCHX]$QPH3+6""2! >B?:@@+HR^GDK()IYW#Z+!R#><C*5!IK@I2@JY
- XM&MF1<9 D$UFHJ#-N6NB'I4@ANHB.0X3HST"%5I=T1Q5@B\(B,+8MEHI]E59H
- XM-.H%I<3E9"XB+F&))KC-J#X-2;]0$_03CD/$^"EM 9%B4J G1H>V5 S0!8 >
- XM)P 7 .< (IAV8 TFHHMHBC6 A2.4</AJ#2*B%62TU@BHAU+7<Y8,[Z,7U?5
- XMN"$=CJ>B71A353,%P1" I& OX8K&,3<BC#$#?%A'T8R\4:^XZ(&-SN*L2#9^
- XM4A(&XV@Y\DJ@!XGX*5*..HXS%DZ%:V]"15816!QH%Y\'/&!<Y,4X,HN8([[:
- XMB[C2+"ACP!Z&Y#PP(AY"5OHD$)<,;##?"8G&%?0H/9(6[EE+L8>Q'N[9"%A=
- XMN&</QWS''E8!;)^&Q,DU9G.?J(<^@G>)XPD84!%<[R/5\7 L4!5BPR@'8(CS
- XMXWSGZ\V/M=C22 =TBF\'U @J+G6:8_XHG/@ \UW, 3_2CW:8ZK9_E2E]4V/V
- XMP)P1@@M5,)ZY9]GCD+(J9) )&3[Q/6P.W"-M>"Z0D)/"L"?A(8F[84L!S\5S
- XM7AZ3:-> ;>5;#<D[ ]0XKAWZM&/.II\U]ZMB=C=>??=J7=OF0 9)\Z)"B';
- XM9Y^UD%$-GBCW 9&5F1 YWO&)OM);@T3^*.HC)<0^,@&:B/?8F"$Y*$">>$0^
- XMD5)(9%>FN%0:)+; 00XI'Z0&^3:*D)H"&UE"SFZ:P^>C^<V&_L2Y8$="D;@>
- XML9<D4@\SI%150SI_=YWI1ST0A\7A;F@^OG?37GR71 Z11^#0Z/WY )(D%]G>
- XM+9&S6YCH4?R1@X$%)$7B=X9(EG9%OG&FWEN32;)WKJ 7R?:%D4="]#A&DA9F
- XM9"29WTT*79]* UN5*7N8K;=!6BKMX&( 20TEE!EY-ANDD'UD%3D8&(FT#EPT
- XM2!9Y=-#79TA.5\+A(ID?\9".) ER1K"0H61@!T-&6WX13W%&@)(#GC>9)&J&
- XM/\F0@S,8.13/&3.U53U7Q'6R3K(@ATB/<U6)/1\/)(9(6CS>#[F Y)D@RP<1
- XM,8(<DCK$78/3>!Q@85]#$ V'(_+:!PZ3%&35#"RZ1<!$?"PHE$/9-G_0^7%
- XMDQ=&+4'/4'. E^AKY +\^17\ (0/S<(S0-2[BPLP;,R1\X!<P,[<<$Y,F<2
- XM)]=0RD.5R=I3[CP<)649D 7(>O^/)>)MZ)3])$^9T; @6 !0>5.6>_I$M]?J
- XM,0170!:@-;QZ2651=E/VE($*Z*$ ^7@1Y2;V__24L5Z?I5\T,U?E4?D5A'M3
- XMD2FG$U4/I<39TM.0"QPE]JA2PH@Q)9'"T! 0V*-H$A%(+@J$2CE\A !?I5D)
- XMXYP+[J--R?9@DH)EIGA0(C><7I=7QY65+>59.5:&9#K$/A?7M&K!0V 96?J4
- XM9.5A:8D\/)DE9,E.8@&=Y4XI#^$!,:-FR4YFE0/'Y<15@GTV!8)VD F,BL'
- XM9ACD+R+';S<2J)1!95R34XYQ2J5G&=<L?IV?MP=5_I0VQ?"QQ TY2(X6$"JT
- XM 5B ^V@4]);-R% )7,YKU*6V9^YQ>\7E4TE5RGI& 8 &>D!5N1J] G)$..8E
- XM!-GC)06@5-5(*]XZUX)[V5(A7QK(K2/KX40ZE'A)5%J6H=YO%EL6!%\&JI.6
- XMG!(!!'$!)C4=W@;VN+%(67-)33E\N!?)#O'#Q?45"P%!-Z]!F(_/A/AZ3)A"
- XM 55H2$$!.P,>@.3 %1XA3B;JI9<2Y@&Q?_B.!!3P4.VM)Q'FAJEB-CNX64K1
- XM+V@B*V4"I^_(#^\?7Q#FL)3!1(GP%70)@LI(H'0T*RJE6ADO)G$HIHQ)8?X?
- XM)L"\YC1@F'B/ADD8<)@7H1L"!7 8,H%"4%@>$*ZB*(0$^ M")A+ I29_L)"
- XM-F;&C&!FMG@%D)DS@>YP9L:9;R8+L)"]F3CFF=AD7IDS9L[W8?)I(V:)B<@9
- XM#6,FZ+%GM@%8YL.QD-F8*T7,.&@^!F^FH0E06IF(9I^Y:+:88!_P@#_R<81F
- XMB79=5@]WIJ=9AP /^&7 =!(4FO\D8$(L.9D=I@_ >#@7"%/P(&1&FJEFC,EG
- XM]A7QHU0 :\:,V2*JB1[105B(JDEWL#+I96[IY;27U8._1^[TD[EBLDF*37J'
- XM"'S9 E2-:B;)@7ZXF9XF>5DEI9=13;&Y7G(@\67U\%YR/,UF\& L0A[2)K5I
- XM-."9Z$>9"7KTFA6!,(9FLIETYKOY*D::\B:=:6VVFRD.X,-<UA+.Y8H07?IH
- XM7)>H%VJ^CK,F[Z-O!HUE2"VV6*Y^_:5CZ7U,EE]:&5!H6ARQ@[L)8,:98^80
- XMDF,B- 8@_?%3#3GRP[?I?M642F:)68M=E,'#BPE5!9O)3K<Y:1J;[&6XV7)V
- XM1C[7LLF_80M5HZ1GBD6;Y.9]N2BNE%FE:)AZ71(O@*)'\QAV&M_#2;+ <V6
- XM4%!+,'U.YP,H4>*!UN15.*'T?E3F>7DG5I9]3GLXA&B4EDA<&4P,'(#E3;E1
- XM#CD)Q+.@TO C<*= "CD,?=(-?%)Q)UPYR'C3( @@8J9H%S\#:#/%Q,PUG\%
- XMQ"U8+HP&B1!J.+RH0%#,<F%"1@3RC.()!;D+*DI><)U--T:0=9.ZK"?;Q$(P
- XME$B>OI6*0BB$&3>$ZQ*AB"IZC(6"P7"'+L )-[3$#SN)\(*M?"@<GE? )OU4
- XMX<R#@ZE(0GZ9#I.E$ =;3.OBI] K;X)!(/J,+5;):.,N'&382R^A0RQ!)<L9
- XM4RZ(@E2!GG,%A2C0V\XRZ!PD>HY44*C4+I#0D!*FW"S="1J PC@E.(NO(91P
- XM"XB0.2&NN1.&@=XR&+0 @I!3$M[(#V)+1T(EM $]2?PY$G@L\LU.\FI!!@8"
- XMN>;9."PU8+Z >/DHX5@V-WVB*F'*O, 2>$>[Y-/6T81 :T539BV8+!\#.Y%M
- XM#)FS9:203I@$S<I7D LF!>O$(/-=N NKP5 B \0YS1#?Z53 7_G'W!$4:
- XMB8$B,9Q'YQMP^('!1RH,=I6#1@PMP?5GAJ ?\_!P<29)T[<=7-"&7%T !)'
- XM0H4H7D,R=$+)<3I,4"'';3%[C&P05,AO0^@.ZA%B 7^GD9'D13C?!9T5!+@!
- XM>4 56F .!G^:_;FMA%0'0?ERKMP.*PS/8C3@H;Z&U^!)O UT:.Z'>%:A,$X>
- XM,!-L!'\G(3H%&*(U5PD3ICFBE2*:5(;.A1)1:_-=Z%-K:!OZO;RA/)4U)(>N
- XM*/.:'7JT\*%;#@NSA^(-WX4?JD4 HO-:(FH\+:*'*,$QB+ZBC"C/%)_8HA\#
- XM#)5R:C=80'^'")FAE2@:ZFNHH6RH&^IC=J*2AZS7BS8%B"<P:B%9HKX&)EJ,
- XM;J+'*&VDBUY,HQR2M!CB82L-"#(%F2>]3B@C N4,V\I*4BE,-^'HSN+4T"6(
- XMP<< VL&4.TT/=,6P)Z9+Z>FGA#,)"FJ7>C8PV2?S(E2Y**,-L?)Q0#O+V\N2
- XMT] N]NCRYK$PHF@ 2A ?%"J(T# XN'!V^E(/A$W4#F* O8(X@ 6>B3D:@4HN
- XMNV0309 <613-O"B@-"L)6E@7?0TOU(0J 15\;#40N2 2C'9E@ )ZD* F"49C
- XMT*@L$#$H$?&-A@OAJ-VS]YAO%.!TD4;T$$"/$?I7+G%?'1'4A+([3V@$9_-1
- XMH7?:%>I39*'4PQ:JCP8676@9\(4>!%C 3WH'!*5GZ/83!*@$,T$IY@[N/994
- XM-CKS'01S!3>:%R"!C(C\U^/),\@<G<8[U 3V0I"!34Q7R\/@<#7P$PE EX*X
- XM="0B09I"%92"%0$26'=Z$@Z+,[-^4@5Q"[A!F+$3E)EJ1Y%D.''.UZ8 T*5W
- XM#ISA .(T>J5"5VQM5QT@\,#AB$^6 H' 5R(>I*G0H']H'J*?I/F,[CH$Y3P7
- XM+]$U^1$0JA=L*@=D5-*:[I4A@@*A5Z8!KZGM: 7Q!.P$D6"/& 0SI4O ,P!0
- XM(."WX"HL96*!0W(N3J271W+'>"EP4Z&?V83$(:A$1V@4'*>OJ0L0IGP!X ;R
- XM@)*E%B=#RK RU$HMP\M@.Y8AZ&EQ^B:LI^UIS_">G@[QJ>I0GRX!MF-^VA*\
- XM"3"E;/ %A&M620]P,<6F9L'^D:#J"PQJ8) >7DPDU#6S10 FI@FS]Q&4?23B
- XM:+"A)@<674S9WZD7&IELBISJIR[ MQ:OD %?0&&&!UBFH(?K\3$PBRIJ>OHK
- XMZ!_AS,!!(CH15LI><0OBJ*XIB]JTQ:AJ%]MU'A*IQ.F!>HEX2>3')9AJIH\G
- XM@66I85FFMF-TVI^"'J]>KW,[O'I3@(GJWUFH4*6-LP;4/J<C%57@$!'H]J
- XMH5Y,KYX%TK*AJ6S7S_#J-017ZG)A+7)=L)2F. 1HIV7 @M?:H"&YI2IIA8"
- XM9^/>(+AM!)M;,$C'_$;X%*%:I<X=.8$L02<EJF:#HE)H!"B.:AHCJ<H!;XUX
- XM4CL<"9UJ%:.E\@RE:A)C ABH.L&@=9=NIQ-)SE DU&[.6^ @F'(+-$^ 1!^F
- XM7E >!AA_P(=3Q/0R<)@ P2H.@0'R%,!JI,8J]4O(ZK&33&P%LD?Z\ 7D3\VJ
- XM/.034'>>9GM8K28WTATY@Y.XDF DHR@//2VI)D]12G@;0PFK8JG8$*7/N59*
- XM;'@='C"A@)9XQ,@<B=.<200#Z &A_G1J&:UX!QR%Y^;@%'^4@9O8OKI_*'H6
- XMA[+YKRYZ/B<&<BQJ(LEJQ*F,D %[G#4S%<@410Q?L'81!SUB1]+M 3WXZK'S
- XM8A*LVZIWE5AL$^RI\01Z7!<'6<G:C!"70@V7>@60EG9J5+FF2AIKJ@E8L\8X
- XM:P AZK*:!E JC4H)Q2<_JWHZ9%P-"I:V*JX^>VP '-!%@@!3 J76!N!/1(0(
- XM@)U"&SF'$K2@$ J.)WH!,&8;1<>&%:YI!9U'HB6#T@%[A:R3^E0>D8=N^#&4
- XMIN2-VXI>R*;[1QXPA* ASHQSD()@IU_!1%&>*0;>Z2*9!,@$,L1UXG'4BMCI
- XM$F/&])^$YX#YE^!_3D3#8KBT?SD);$#SA)P((('I)BR 1Z(#2#"$@&372LDC
- XM7H+H8A$&7.F X"D/F&7^@#O?];%3;1]$XAK11IB3,23=)E/4AIVA'I$;2F7@
- XM9'7WCXVN?EB[^IU6A*JKARG4685%G4UQ1O22LVOG6KM.16>KWXEXVJ"V7U/D
- XM6@Y:U^>0<U*J50IFMR*B9C.4"UQ)<F*/#YPEP1>XBV&H*I&KNHQFIP)Z02U
- XMU2I6::F\KS[>V+$@'18]:6R3/V@_2N*&\U(4J\[?D]J,/*L(D(XTK4(08>0/
- XM8:SJI@(L9+!V]3)SP!9PT<@TJ<S?.'"8,HL,!9O1'!4*; K5 I"6T#O5SAH
- XML"R!!7OWB+!-32K#P=X0'FQ<\\"2J%O [,!KF+!UP_,S9'"5 "P&V,"Z "]L
- XM7[$%Y*'6BPFK^Y4&O0X0V\*LL$"$#OO!0K 2[-=0&V _0JP$E!RHHD_LU_"E
- XM(+$+;#NYP_:P0L$/ZVO$.E$L$5'$?K'G"A;;PE:7("P%9,7F 2:L]<.EK+%F
- XMK!+KPH*P'A 4"WJT03$E]A/',K!++ R+/<@$86QTT.M@#WNL%MO'^K#80Z$1
- XMR!*QO0PA.Q7EL'QL7!.B='+ $PA2R((@.RQCE\H-8D3$)4M$9+(936Q'R<)V
- XME9TEFY5VL'*L@7>Y4++$7R=[RK*PJ:P<=>%U?I2LBM?YF;(P!2H;R=Y]']_2
- XME\KYAZE7VMKN>;+1P0[+^0DUK"QW>,NZLKDL++O+F@: ZM:Z!=6H7R0Q6QKL
- XML(P'):NT-K-)[#/KFZ$!VFPU^\IVLUHLE<=XV)8#A[]GS4(&YJQ^X:#="NGL
- XML_ES,K.0;#E+5KTBXYDJ)17L63#C.)O%8K)4WB!23.JS=Q:<51JLLRX E0?K
- XMG"N@QT)[M."R]2Q :XE</6@K0SMM*3@#C]%C\/2SW.P_^\E2>11M??-N$CQ8
- XMSVI#S^JR]JRRRMG$.NP31DO25K0/[4GKS*:TJBQG(])>M)=+UG/0^K,!+)5'
- XMY9 %#<Y->_PM.$ M?6/2<K01[4=+B7$VII)3@-,RM78.4HO22K22K#HI6,8]
- XM5$%;8]5NEJ;L89$JNAJKXJQA/IRM/*O\=WT2$?VG#"'CV".T RM1&S0EZ-$;
- XM +>("O,"*R$Q:*8A'DRCG/PTY@(,&BZ1M2?K&N 1]:>&B_'4I""GB8CS1UTI
- XM +]$?^H!T@LJBI.X+R&G^5)"*!:*>=0-97OIC15;*O0!IB*G]<B3!F6"&9TM
- XM5,FS$J)OW*>W$^@NT6J8>+BNMK[>9K;:JGU?Y/:AW9AZ_5%@^P7,MI/(:OO]
- XM"9MY:SQ$B?F*YJ9P.UQNET[EMT=+S#<%@M )]@T?I2V8&MBBMI[>&O8OZ;:2
- XMT, 1V5JWQVU3V5TJM].M\205B33$1DE3$(2U1D!L.-82$91.$LBNHBYSZ4$F
- XME!@_S(^;8V$D%A4,NKH5Z)']!/NF ( @[2W1,$-4.CL(&8 ;D0%VJSS73BZV
- XM)."!^_"\%$QGT7=[>'P@7R\G\NTM?QL>L (8N,7>L9,';+AV:^/W^I4&@4K:
- XM>EW<#^I!2["0_"_T*.49>!5>SB<EDVVX)[D+BEN<NH'32FSBO^0WWV:30BZ8
- XM+"=*TW.X;':7AS:!2BP%;=(^81[DKR3NN6#B_@TP0G'J$>E*"6[SAP$NMEX&
- XMO4#E&J%9[D^E*UVQ6:=E&^9%>?=J>#7G99,%%$X3K#UY92ZXF@+\ &=%"J #
- XM(!LZQ,,!=<8U, (9(*>J%V7CGLH56)?>!K;@K_I%*X":^['9CJ#8P%&98 L*
- XM*Z%KZ#X1MF.$Z^[M(!2N+VOA>D1FP)<;XJI_Z^WNY^2F!$/$BN#D*3TL+@$A
- XM8/:8!J:2TM9:?N',ZO,Q-"5H3A40?NXK^1'N(IYL#JT/=UH:])^KKL^!FT0D
- XMJ0XD\=+Z.U^?7,*1S(.DCT3Z%Q CGY*4D@+5NJ/!K5N97!."BFJ'2N ,58.K
- XMPM8FNRB/.IK*L!,X#6&*M3IE$PEU%Y49N5B6B&"/@)X[2?_9M.%[X(09 UM-
- XM!DSN8(FV@KIKJPXAB^!&"6[I9XS\$OSN"$@O9*03:[[WYW$@*T# &N'5:F+
- XM)M;H(KP-ZXJ BM608NY)2.8^GV;NH=>[)DB/;@%+Y^HU;BZ<.\7-N3B-G6N)
- XMY+E[KMI0+4Y%4*@4^K<=FHEF5PA>V+KY0X)K!,IQXX=4$,2P!,J%M,M49*-9
- XMJ4^1\Z(!/6_-RU0$N@-'1BIAM =KZP']/84,L706P0(!W1 T;LY'+TJHT=R
- XM)S6]-L73*\?MO%5OM&OTVA2+;M*+!BR]7&\EAUY<<D&O3"$ZY@Y6;Q[ 5)2]
- XM'LG9*P,PO3I$L";K(;U:+]J;]QZZ7:\E!TO*%%,OSROV7KUD;];;\/J]'X/>
- XM:U/PO1EISI7V(G*"[R/K4XPL(0(: /;&O7.OXBN*X1J3K]=[^48L1._A*_<F
- XMOBV V2OY_KV0[N.K^-X!C&]) OBJO7Z<Y2M38+Y20>$;]LX-8R_P0/<VO*MO
- XMXSO[)@"0[];+^E*L@>_:JXG@1)*N+%+IYGTAWY2[$6RZNF3VM[Y0$4%!Y1%X
- XMV@O7*@'AZE9U0Q9M>4Y8(84MQ:*OW#0Z!*^;$KBU%=P8<.2^E6B0O4+S;@Y-
- XMR11T/T1C&4WX^_WBG^ *75(1H#H'"4S90Q1O0]8C 9,B)AVD\3,Y5"OWX/""
- XMK=2>X /9ZN/VOTO0\LFT. 2[Y) YE0V#&/!,4OI$"JS$\@*XYD=3257RHRRY
- XM?RT@<?UBJVQK]>H&@""T4>4Q >)S%Z!N6HR8LDP>V%9Y"+P5@77I'( @QPYJ
- XM^4']EC\PEX13)D@$+T%;?$5X((AIH?!N($TP$NSPXISP5V75!*\ $2^E9P43
- XM$;5:Q]LO51XF+YY+3J2\N@,UA@6(3^*# O&,(4PAA50*!1O!0UZ&F6+BFC+O
- XM%S#_VKS_J]!K>VJ^&0WGF_S6OFTO53#T^L' @[>Q B2]L._=&_I6OH%P"0,^
- XMH &Z+R%,_+IDB'#P*_NVOK0OVPOU4@6;K^G;^1["=6_LZ_AFPH,O5?#V3@J2
- XM\$-F]HK"PZ\AC BSPI@PY:O\VKY4023L"2>^H/#BJP@?OWLO):SU6L*CL"P,
- XM"&_"( 'IVPGSOHBO[^L+ [^@+R_\!VO"<ASN6_HBPZ>O,IP+?[XJP.3K"O>]
- XMN[#P&PN+OK<OZ6L+4\.?L.K;#'O#R&\AO P;O^BPTUOY^F-75* B/I'!Y64P
- XMVDSN>N83HF3O?0QA<#."\A[ ?:[7MYGAPW>N/TQ.A*FRP8E*EV4W9R-PRIKF
- XMJ/JID-%$V(Y&P3/6VDVH"^J8"GJXEA0Q6)H&/\1%ZH%*0@5V^/!PRP* J6*J
- XM>L$"F 6L>>XV>[#98"SRC8P>S,3RY R5 'U%A; _6*_P:F^-!+3=F!P/LQ%
- XMV12?JJ'Z-4" 0L;T"T/]E5-H2^?9,@%/@-3Z!,B?#Q"4%C-@ 6DP0FSO_L00
- XMG;$G%+=*@0HA>GSX!2W!4MQO'AQ%SI#5J[@!:X-44 NYCVOP/ 3:/A+X$!#\
- XM%>^]=P!-H-:N 2DK>S!PL*RR@:R'P@:J40E7' .S/@1GQ??9,K=- 1\@W0Y9
- XMA.A&P!+GQ=>H/];587^ A" A,2A'\M\ IEX(!I+"CLG76G^6H.P'20@ELIM#
- XM 'FJN M$*=',/7/1G+70WZ; L)]FW!(H1P,&9'/8*#-WC3F$)GD/>62OH]M,
- XM,R]%[)KDM!%E:<<G$06W>PL4$ 1H.S/3$V $# $5A'S*S\0?.<0!8068>_O@
- XM@H>W"I3A)/70_'['T0&E.UR6,TQ?<DS1\1_@L>^J2^8%V9]MO'$D9*2N]5@#
- XM=66HSF@\]<S&QE5\+/L18G"&;ESS5 2],=?Q&^.1^H1P;/Y8F_[&)I3LJ BP
- XM@7EH+'"3VH='N$VBD0-><DP>EP8[B',,':</TC%UG 18QX=8C"10+9DH@/L#
- XM(=\_JP(YZ3Z.D[=D**DA+\?M,0O@(1<!T?%T7!VK#-?Q+@4[$'WNWH:<>DVX
- XMYS%%DA[;P]M;0%D>A\?O\=[YU_T0:(#9X2S)?\S'F.$CDB2;X+RK -2[1@"4
- XM+"4[$0Q>8GOEXI!IS8^'SZE^!1Z48VU"D^'/>F2;>IT)4AI +R4 [-LN]Q:[
- XM$7R+"A"NE3/P6^+:CI(+O!-4%ICX0O6?#'0F/9@*WR!EO$I>O6!M(-/=/U/<
- XMQ9178*? :RWT NS)TA(^H5G$AF=B0 <]07;U%J8<(+URM5Q0$LI=3#F5)S=J
- XMX4*3W/UXRAD%HC(DMRIS/J4RL'#+H5"I\BR7?2A7!=S0N<N)RKX<;0?,C71K
- XM6TFGTVDB?AE9D0;T #O%4Y &\ !+')3<$)0%'J.<S#&ZCW8RGVS^370XW>5R
- XM+)=WZL&8P;_*>OOG@CH'^ 5E !PP5BRG3XI.1RA"-UZRY,/N^'J_LE*@+0-_
- XME2.Q_(U9=#E=^E??=<DSQKAL4Y3+P *ZK"ZC .SRQ_ O<M=LG 0)<O+71\\
- XMO%*R+#L+FW:\P&XT#TV'+YL[^G)%9RRG?]4O^7<NI'W8PFA,Y.ZZ_DWR-KT)
- XM+Z2+"=)_,I]NEZ,2,"T%.>[3TWBR 0X)@IOJX"1GA,?XJGIXTQ&Y)N9H!:_)
- XM.''7$@1IC@%3J !Q[F@@L].D 'YM?RPR+PO@D4<4;=5O"J[V9%5]3U<S>/1(
- XMH@!=LTJ@[J%0E C?-PQ1.^V?-+2!_+8Q)VV70_TXIE3S6S;3?7W?8A?*5G9Z
- XMGW'+XTR:65M(6+\E477#$#"A+%J("#K)+A(1KA <(*3F#K*4 33(W*L"*,FH
- XM57 53D]/L/ZZI(@!/%$0F)!Y9"6#NC@+AL'+ AH\!K\@K?N!H3KBH/_7%,4^
- XM#:9!:JVPI(:')5&NF(;![M;*3@0!1@ *(06<S%0!]'&O4A%-QV5:K9@'',-_
- XMQPDW<U" +?(%M 5. /!@ VS)M''2: MSBWD(79/9@;$#=>A3V* Y"/'\R:S
- XMQTMR+%;7&)1@IY9!$BJ4?TT&M-W%-0\EF'G73<].!&F@G&ZH[3)QX)PZ!8)>
- XM$M 2O 3X+[AQY3&2?)F <@,BQ9A=17E36"%?@*X40'\!77$"S5,DS#%*9L K
- XMK 3&E/II0+\^9P06P$S5#V<$<EF-*4PJ8#ZV7^4X$5?>-K<A(,/"2 ")& 0J
- XM0)N*K7(>R/)-N0H-!JV0 00+70^RT&:;A+H >\5] @<H 74 A]>F&BGUUJ0\
- XM=,*(I-V78:_<JZ@S&XH%78)@1Z(5^^00/$3N>"Z(3\"Q/F$8\ZY%Y5<,-1D%
- XMJP*RH"PP"SD2#, $)$K(L_+,/&\$86GKI#*X!46 %*!'2<;DV_[LL)@ &G!X
- XM_"6>B5-T_ P;D$+MX6A;1[L$[@(I= 6DT>C(\IPRY,3484+P+RZ43S0531K
- XM4'UT%0VN^LB_ 1$7?3C.V<;_9X94TJ3!AU<;M "!=#B3.'\:3H:+<D8,<8=R
- XM=0%*1\C@*I1Y,84 /5WQ*IXRRAJA%G%*OP$3W]A\BF@8/O)F!C];TFZNQ70Q
- XMU0U2@!62MNJ<$IT)@$&?"QKT__%,TP%9@#=U$)02K/.M<M.,@U !A+8>QSX>
- XMA^*7+'P7I.7 (10.&E82"M6)&$#A-!DP3OL:4J6B&V/DA'8/2684K--94#O]
- XM3F\Y5P#HD12>&;F:/7T0X--P@#[-!GP7',3 \4\;&AF9)G)/2X7L]'.1EAE
- XMGT8Y311#U/FT1.U.']2^!FEI<2S4A:%?A5 $8\K7'X=1%]02=>SS:<33%[6%
- XM!$YKU/MTS2!5?M0YH5*8D9'4HA2J3-/LEXRE*NLK%F@MTU04OB73HL(R775*
- XMTQPT-"T93]/5M$-]33M^=27KC-DQ!<H)1$%^J*^'V4!]4H?3*O4;4$Y'TG[T
- XM%@ #= $FM4L=47<%$W46M%*G(,,T:; %^(UE=?%Q5LL'&S4YS59G09)T&[ %
- XMR !D=1RW5</4'/66$T^#U3S$%C #]-7J]%^-5M?5OD8_/8FTU7HU#8!8/]1F
- XM=4:]6,?4CO)=K3B'U37 9 V6-M)6HI0'6<-0F)V^6CZGR8!;)79$%P0:ZKF,
- XMEY*45@BT\K%1U0<JITQ0&]1V-2@\35>5N6QEC5)?UH&U3.T+,]64<E3M.(<6
- XM5C6X@56392$ %A %;"L[#?4L(R/)I@1+(!D'T)+Q 'U=(]"Z$AZ-0/-DTY1!
- XM8 (X!PFT9$Q>=]<3M$-Q@*:V%]->UBDH'=D&Z_SZ:#8FIS=M1$O,MW5*;0"9
- XMJ9"(J[<MO-"M7V\M5UO6\D'L8Z9^U0NT$"Q@IR%S=5H-!YBI@_4"_? P7]GT
- XM34/Z6"6D4N(L76?(2+*4::,N;YA=(&H0+*I/X!,H9>;7:'57K4&?V(IU@4U1
- XMOP%-]52D"EW8H"H!9$,7L!SQ/^8Q1"JK$1BCK+2CIX33'%4-KTCH<Q,$A AO
- XM0*>2(<&I)HCB RS8/:[E1N!")P=':7=W&5N_4S2-_<#8SMT<3H*04C+Q@TA@
- XMF?Y_9T _:F'?@A9>%3%N$!WGA&")=. /9DI% XO=(+VN)0'$-2L43.QCDP@I
- XM30OLTIM",4R!7<NZC-DZ7=1<VF#9TS.-S<]<S\I!]DPO;<^Z:?=\Z7S/S/$(
- XM-6/?@C7T*_0 36YG<*)]"V[11?'<$4!7IZ&VDS-J0X"1:HLM3@?7M4$TC6+3
- XMU9BU&Y %N%.O]JK]75P!23*#36#;VKZ&F9EJ^]9<]7X]9+G:JK:!/63%V!=3
- XMX]5@&]O;!"0"2->V'F$FK4F/NT0 ?_*Q[*C8*HQ)+[RD+=OCK%TD!Q2'9'<W
- XM<P[*S$MY+JB[3D&+TGQ,92*+.!%TF"Q*1[A]SR4'7:@\PQ1,H.G%#Q!N)UH#
- XM,N9A !4WM3:SO0; T%,1'_UOT\CA,VW;/GJ$Y%"3?2Y,V4%!3[=L"]O-M@GB
- XMZS7<W VPM_@$W!3WP W 5(UP3^/#$/S75#;$[-PNANWUQGG!709XZ9G-.+/.
- XM4?3%=&D+0#:VIJU5YM"6\>JVTFA_L.J>X^YB64BN4S!F=']!FM% P1$RR<'/
- XM':[=)K3?O6)Y*JYZ*4P2/U1_F_9!DH"2+EX! VIH_[>9L>S'_1T2+K!5@W%O
- XM'?22E6L#D\F\74#C:DP!2$ 0 7@!5'AOOQUZW0G%*)"^Q4G8@#I,'=OT8F?
- XM8C1W6R!+=X\6/%A=/UFEQ^\Q>CDG9+>EF7T.Y6YX["W>?S?072!L!'-WH.+>
- XMS6_\LK=,'%B8T%FBC//Y@,=KH^P&5%Z,E"\-EHI945;T$,'B )ZU('I>,40]
- XMQMMF_,& 2S%5-H/Y%?L0\-B HWR/H$?2B=637[0Y5M8IT49MGE&G>WFL=E
- XM&+X1*Z4_!.\:4L!WLMT/$=\<659D39MF!<' PYB,!$,W4C!-M+J&%_:(2C"@
- XMK<_OU&$52NX">D%2G(Y"]5-M"7X/PB0*=*[]TH-#!#M6\[#VHZ3,V=C?78 +
- XM\%O6(?1W%WM_UV*TF"6E>HO5_?>+&0842/IW_?U6]]_6)0#.C>S?#[C__6YV
- XM>0%X!.LW?K/OII:7@5?@+R;A@2TLX$XU]OU^6R7%Y/P]@3O@?#7^C0_QEY!!
- XM<E: -^!=; O^?QO@%'@+3H![X"MX#9Z 4YPD>/L=H5'@A[4+SGB+5R*X<8>#
- XM.^!%^&\9A*-0!W@17HM1)$MX%UN$A^ !&B3!@!]HXEFX8)6,9RKX$.Z 2]9&
- XMN 0NAG>Q9#@13.Y=EF.E35.%1[!D^!3.@Y_A</@/CIH-'$EX$$Z#1["==1G^
- XMAF\!?;@:_D,^>ZC9"(Z!]^!\>/^]@__A?;@"OH5WB6[@,!$8I.!FX@=N T#@
- XM:#*QF(?/X3N+ WZ)6^ O>$^-N!7BB<$?_HG+X::X';Y2@!YY^"..B&\!-P F
- XM'HI#G#&X?S:#0^$4>"P.BA_AA/@J;HC_X;KX(KZ'P^*J>, Q<.CA*)3=W?WA
- XMW:0#ZHV>\=UKN$\M347>@7>976+O4:KW1H #4-ZT7W_G"U8%6X3M^2V_I08!
- XM>0LLRJ5K!14RZ@3:QPG; HP-)8K>;!8_7* \:?1\-# %9*0S,S=)E.[7>31=
- XM'03\I/CG/AL%>,UXI7LS951 %2 %. $E8VT17K/0GMA!?CXDY OY F'/#>0'
- XM0;NB8#F#<7"5&9ZV(>)?"LACL- 'Q=NFCSM%S*.#U>4^Y()!<^CZO:NQI-%<
- XM#.D2WTP[?G*.95:,2R"E*E_J1_6=<>UT1ZA&SKI:A:1W$;@_[^30XE%N3?7D
- XM=R"TYQQ6%T)YZ)U+.\JO*_5PE,^'00#*H90CWE4P8N3,'(59,-")'0+E*D (
- XMKI,;<# Y&_ KL*N+*3L>1#_?./E!<)4/'+@&%;5\/^5@1E2.2X]XH_<0:'E9
- XMY3HY5JZ5Z^1+N1SH(DX7PX=>_O")WG+AEM-2S.4D05:^(!+F/+E>B/51%@?%
- XM40@8)A@LQV"XY834A$77AYA#Y0VA5,Z7<X2 ^<Q([4CF6SFN<4X3A9GYH@=2
- X-!]1I@&A.D!/@9SF%!T77
- X
- Xend
- END_OF_FILE
- if test 32539 -ne `wc -c <'winframe.c.Z.uu'`; then
- echo shar: \"'winframe.c.Z.uu'\" unpacked with wrong size!
- fi
- # end of 'winframe.c.Z.uu'
- fi
- echo shar: End of archive 11 \(of 21\).
- cp /dev/null ark11isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 21 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Molecular Simulations, Inc. mail: dcmartin@postgres.berkeley.edu
- 796 N. Pastoria Avenue uucp: uwvax!ucbvax!dcmartin
- Sunnyvale, California 94086 at&t: 408/522-9236
-